Parece que xticks no alinea las barras exactamente, falta la primera AAA:
\documentclass[]{standalone}
\usepackage{pgfplotstable}
\usepackage{tikz}
\tikzset{font=\footnotesize}
\pgfplotstableread[col sep=comma]{
key,value
AAA,14.9
BBB,16.5
CCC,19.1
DDD,20.2
EEE,22.7
FFF,23.1
GGG,26.3
HHH,26.4
III,27.1
JJJ,30.8
KKK,35.5
LLL,37.3
MMM,110.0
}\mydata
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
xmin = 0,xmax=14,
%ytick=data,
xticklabels from table={\mydata}{key},
xlabel = {category},
ylabel = {weight},
x tick label style={rotate=90,anchor=east},
axis lines=left,
bar width=30,
height=14cm
]
\addplot table [x expr=\coordindex,y=value] {\mydata};
\end{axis}
\end{tikzpicture}
\end{document}
Producción:
Respuesta1
Lo más importante es que a tu trama se le escapa la clave
xtick=data
. Entonces las etiquetas xtick y los datos coinciden.Probablemente no quieras que la primera barra se imprima solo la mitad al lado del eje y. Sustituir
xmin = 0,xmax=14
porxmin = -1,xmax=13
.Quizás no quieras que el eje y comience en el valor más pequeño, el de
AAA
. En este caso agregueymin=0
.Para desplazar la etiqueta del eje x hacia abajo, utilice
xlabel style = {yshift=-5mm}
.
\documentclass[]{standalone}
\usepackage{pgfplotstable}
\usepackage{tikz}
\tikzset{font=\footnotesize}
\pgfplotstableread[col sep=comma]{
key,value
AAA,14.9
BBB,16.5
CCC,19.1
DDD,20.2
EEE,22.7
FFF,23.1
GGG,26.3
HHH,26.4
III,27.1
JJJ,30.8
KKK,35.5
LLL,37.3
MMM,110.0
}\mydata
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ybar,
xmin = -1,xmax=13,
ymin = 0,
%ytick=data,
xticklabels from table={\mydata}{key},
xtick=data,
xlabel = {category},
xlabel style = {yshift=-5mm},
ylabel = {weight},
x tick label style={rotate=90,anchor=east},
axis lines=left,
bar width=30,
height=14cm
]
\addplot table [x expr=\coordindex,y=value] {\mydata};
\end{axis}
\end{tikzpicture}
\end{document}