pgfplots:addplot 表会自动包含并忽略标题吗?

pgfplots:addplot 表会自动包含并忽略标题吗?

如下图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 手册,默认值为headertrue据我了解,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 将会抱怨它找不到列firstthird


在您原来的 中test.dat,将第一行解析为数据而不是列名的原因是列名不能纯数字。 因此,PGFPlots 将第一行解释为数字数据,即使默认情况下headertrue。 从文档中,

使用\addplot table [header=false]{⟨file name⟩}如果您的输入文件没有列名。否则,将检查第一个非注释行的列名:如果所有条目都是数字,则它们将被视为数字数据;如果其中一个不是数字,则所有条目都将被视为列名。

相关内容