如下图test.dat
所示,包含三个点:
1 3
2 2
5 5
该代码只是绘制线条:
\begin{tikzpicture}
\begin{axis}[
title=test,
xlabel={$x$},
ylabel={$y$},
]
\addplot [blue] table {test.dat};
\end{axis}
\end{tikzpicture}
根据tikz.dev / PGFplots 手册,默认值为header
。true
据我了解,pgfplots 会将第一行作为header
这方面的。我的问题是:pgfplots 是否足够智能,可以自动包含或忽略标题?
我也尝试添加一个标题进去test.dat
,结果是一样的:
x y
1 3
2 2
5 5
答案1
是的,PGFPlots 可以识别文件中的列名。如果您的test.dat
文件有两列以上,例如
first second third
1 3 4
2 2 5
5 5 6
然后您可以通过指定和header = true
设置列名来选择图表中想要的列:x = ...
y = ...
\begin{tikzpicture}
\begin{axis}[
title=test,
xlabel={$x$},
ylabel={$y$},
]
\addplot [blue] table[header = true, x = first, y = third] {test.dat};
\end{axis}
\end{tikzpicture}
如果没有header = true
,PGFPlots 将会抱怨它找不到列first
或third
。
在您原来的 中test.dat
,将第一行解析为数据而不是列名的原因是列名不能纯数字。 因此,PGFPlots 将第一行解释为数字数据,即使默认情况下header
是true
。 从文档中,
使用
\addplot table [header=false]{⟨
file name
⟩}
如果您的输入文件没有列名。否则,将检查第一个非注释行的列名:如果所有条目都是数字,则它们将被视为数字数据;如果其中一个不是数字,则所有条目都将被视为列名。