我有一个简单的数据文件,由两列(x 和 y 坐标)组成。我希望文件的第一行是列的名称。我希望用户可以选择指定他/她认为合适的列名,包括一列的多个单词。例如:
Number of points Values
10 100
20 400
30 1200
40 2345
etc...
当使用单个单词作为列名时,我可以让它工作(如预期的那样),但是一旦我引入多个单词,我就无法让 latex 编译。我在 latex 中尝试了以下操作:
\addplot table [only marks, x={Number of Points}, y={Time}] {...}
\addplot table [only marks, x=${Number of Points}$, y=${Time}$] {...}
\addplot table [only marks, x="Number of Points", y=Time] {...}
我也尝试过其他变体,但没有成功。我一直收到错误:
“抱歉,无法从表中检索‘点数’……”
如有任何想法,我将不胜感激。
答案1
您可以将有问题的列名括在括号中:
{Number of points} Values
以下是完整的 MWE:
% arara: pdflatex
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[only marks] table[x=Number of points,y=Values] {%
{Number of points} Values
10 100
20 400
30 1200
40 2345
};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
问题在于您使用空格来分隔列名中的单词和列本身。如果您使用空格以外的其他东西来分隔列,则效果很好,甚至无需用分隔符将列名括起来。
在这个例子中,我使用了逗号,并且我pgfplots
使用以下方式让列分隔符知道是逗号col sep=comma
:
解决方案:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[only marks] table[col sep=comma,x=Number of points,y=Values] {%
Number of points, Values
10, 100
20, 400
30, 1200
40, 2345
};
\end{axis}
\end{tikzpicture}
\end{document}