我正在使用pgfplots
创建条形图,其中 x 轴代表不同的类别。使用symbolic x coords
我可以指定类别的标签。但是,我无法使用数学表达式来定义条形的高度(y 坐标)。我怀疑这与 的使用有关symbolic x coords
。
这是一个最小(非)工作示例:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[symbolic x coords={a,b,c,d,e,f}]
\addplot[ybar] coordinates {
(a, 1*2)
(b, 2*2)
(c, 3*2)
(d, 4*2)
(e, 5*2)
(f, 6*2)
};
\end{axis}
\end{tikzpicture}
\end{document}
我在编译时收到的错误pdflatex
是:
软件包 PGF 数学错误:无法将输入“1*2”解析为浮点数,抱歉。不可读部分位于“*2”附近。
任何帮助将不胜感激。
答案1
你是对的,symbolic coordinates
关闭数学解析器是因为它不适用于符号坐标,并且不能有选择地启用 y 坐标。
看来您必须解决这个问题。根据您生成绘图数据的方式,这可能是也可能不是一个可接受的解决方案 - 如果您只需要手动输入的几个数据点,那么这应该可以正常工作。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xticklabels={a,b,c,d,e,f},
xtick={1,...,6}, % To make sure the tick labels match the data points
xticklabel style={text height=2ex}] % Make all letters the same height so they align properly
\addplot[ybar] coordinates {
(1, 1*2)
(2, 2*2)
(3, 3*2)
(4, 4*2)
(5, 5*2)
(6, 6*2)
};
\end{axis}
\end{tikzpicture}
\end{document}