我对使用 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
进行排版。绘图时只需使用标准名称。