pgfplots 构建挂起

pgfplots 构建挂起

我对使用 pgfplots 还很陌生,所以也许我只是不耐烦......

这是我的数据文件 plusMethods.csv 的前五行。总的来说,数据文件有 58 行。

$\lambda_{dep}$,PlusCost,PlusFTE,HoldAll,Random
0.02,8.57043,8.7743216,14.6061558,6.785214
0.025,8.7006858,8.5058498,14.9181568,6.7895608
0.03,8.8933298,8.2800796,14.4981258,6.7568732
0.035,8.5948352,8.697557,14.7440514,6.7245296

这是我的文档的相关部分

\documentclass{article}

\usepackage{caption}
\usepackage{pgfplots}

\begin{document}

\begin{figure}
    \begin{tikzpicture}
        \begin{axis}[
                xlabel = Departure Rate,
                ylabel = Avg Portfolio Value]
            \addplot table[col sep=comma, y=PlusCost, x=$\lambda_{dep}$]{plusMethods.csv};
            \addlegendentry{+Cost}
        \end{axis}
    \end{tikzpicture}
    \caption{Performance of Triage+ Methods}
    \label{PlusMethds}
\end{figure}

\end{document}

当我在 TeXnicCenter 中构建它时,它就挂断了...没有错误,系统托盘中的绿色进度条继续移动,CPU 风扇旋转起来......但我已经等了 15 多分钟,什么反应都没有。

你知道我做错了什么吗?我无法想象这是一个如此复杂的图。在完成所有工作之前,我需要在此图表中添加另外三个系列,然后在整个文档中再制作四个这样的图表……

答案1

我还没有做过手术,不知道它挂起的确切原因,但罪魁祸首是\mathchar在表头中使用了 s。一个非常粗略的解释是,pgfplots' 内部命名机制使用列的标题条目作为内部列名宏。因此,假设mycolumn是标题条目,并且使用复杂的命名方案,内部发生的事情是

\csname <internal pgfplots column name macro prefix> <mycolumn> \endcsname 

机械类型被调用。

即使在正常情况下也\mathchar无法处理,但在这里你还为 TeX 提供了另一个壮观的断点,即数学模式$字符,例如,

\documentclass{article}
\begin{document}
\csname $\lambda$ \endcsname
\end{document}

在非停止模式下已经出现错误,它会打印一个美元符号和\lambda。在内部,这可能会打开数学模式并在错误的上下文中破坏后续的所有内容。

最简单的补救方法是删除表格条目中的任何 TeX 特定输入,并使用column name进行排版。绘图时只需使用标准名称。

相关内容