
Итак, я только изучаю LaTeX, поэтому извините, если это глупый вопрос, но я прочитал руководство, посмотрел видео на YouTube и прочитал блоги, и я все еще не могу понять, почему это не работает. Я хочу сделать простую столбчатую диаграмму. Все идет хорошо с отображением данных, пока я не пытаюсь добавить код, который делает это на самом деле похожим на столбчатую диаграмму, затем последняя координата исчезает, и я не знаю, почему. Это мой код, я привязал "pgfplots" вверху (а также "pgf-pie для другого графика, если это может быть важно):
\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}
Проблемы начинаются, когда я добавляю эти две строки, которые я взял с обратной стороны:
x tick label style={/pgf/number format/1000 sep=},
ybar interval=1
Кто-нибудь знает, почему это происходит и как сделать столбчатую диаграмму? Спасибо
решение1
При более сложных входных данныхкоординатный участокможет быстро стать запутанным (я бы использовал толькокоординатный участокдля добавления отдельных точек или чего-то подобного).
Обычно у вас есть таблица входных данных вида
X Y
CA 9
TX 8
AZ 8
Поэтому хорошо знать, как это сделать, будучитаблица графиков.
symbolic x coords={CA,TX,AZ},
здесь не нужно, вместо этого:
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}
решение2
Я думаю, вы ищете что-то вроде этого:
\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}