条形图坐标中的数学表达式

条形图坐标中的数学表达式

我正在使用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}

带有 pgfplots 的伪符号 x 轴

相关内容