所以我刚刚学习 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}
当我添加从 overleaf 获得的这两行时,问题就开始了:
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}