
Recién estoy aprendiendo LaTeX, así que lo siento si es una pregunta tonta, pero leí el manual, vi videos de YouTube y leí blogs y todavía no puedo entender por qué esto no funciona. Quiero hacer un gráfico de barras simple. Todo va bien al mostrar los datos hasta que intento agregar el código que hace que realmente parezca un gráfico de barras, luego, la última coordenada desaparece y no sé por qué. Este es mi código, he vinculado "pgfplots" en la parte superior (y también "pgf-pie para otro gráfico, si eso pudiera ser relevante):
\begin{tikzpicture}
\begin{axis}[
%title= ,
ymin=0, ymax=10,
x tick label style={/pgf/number format/1000 sep=},
ybar interval=1,
xlabel={$estado$},
ylabel={$frecuencia$},
symbolic x coords={CA,TX,AZ},
xtick=data,
]
\addplot coordinates { (CA,9) (TX,8) (AZ,8)};
\end{axis}
\end{tikzpicture}
Los problemas comienzan cuando agrego estas dos líneas, que obtuve del dorso:
x tick label style={/pgf/number format/1000 sep=},
ybar interval=1
¿Alguien sabe por qué sucede esto y cómo puedo hacer un gráfico de barras? Gracias
Respuesta1
Con datos de entrada más complejos, elgráfico de coordenadaspuede volverse confuso rápidamente (yo solo usaría elgráfico de coordenadaspara sumar puntos individuales o similar).
Generalmente tienes una tabla de datos de entrada del tipo
X Y
CA 9
TX 8
AZ 8
Por eso es bueno saber cómo hacer esto comodiagrama de tabla.
symbolic x coords={CA,TX,AZ},
no es necesario aquí, en su lugar:
xticklabels from table={\inputdata}{X}, % <--- !
\documentclass[margin=3mm, tikz]{standalone}
\usepackage{pgfplotstable} % <--- !
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\pgfplotstableread[]{
X Y
CA 9
TX 8
AZ 8
}\inputdata
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ymin=0, ymax=10,
%x tick label style={/pgf/number format/1000 sep=},% not used
ybar, % changed
enlarge x limits = 0.4, % new
xlabel=\textit{estado},
ylabel=\textit{frecuencia},
%symbolic x coords={CA,TX,AZ}, % not needed
xticklabels from table={\inputdata}{X}, % <--- !
xtick=data,
]
\addplot table[x expr=\coordindex, y=Y]{\inputdata};
\end{axis}
\end{tikzpicture}
\end{document}
Respuesta2
Supongo que estás buscando algo como esto:
\documentclass[margin=3mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
ymin=0, ymax=10,
x tick label style={/pgf/number format/1000 sep=},
ybar, % changed
enlarge x limits = 0.4, % new
xlabel=\textit{estado},
ylabel=\textit{frecuencia},
symbolic x coords={CA,TX,AZ},
xtick=data,
]
\addplot coordinates { (CA,9) (TX,8) (AZ,8)};
\end{axis}
\end{tikzpicture}
\end{document}