pgfplots 外部文件格式

pgfplots 外部文件格式

你们中有人知道pgfplots从外部文件获取的图表的标准格式吗(以及接受的文件类型,例如) txtdat以及应该在文件中放入什么才能\addplot从该精确文件中获取数据

谢谢你的帮助。

答案1

  • 我认为,纯文本文件是唯一受支持的文件,但文件扩展名可以是任何你喜欢的,,,,,随便.txt什么.dat都可以。.csv.montypython

  • 标准格式是空格分隔的列,即默认的预期列分隔符是空格(“至少一个制表符或空格”,引用手册)。但是,您可以使用键指定不同的分隔符col sep,它可以有以下不同的选项:

    col sep=space|tab|comma|colon|semicolon|braces|&|ampersand
    

    如果你有一个文本文件,如下所示

    x y
    1 1
    2 3
    

    那么你可以做

    \addplot table {<filename including extension>};
    

    您会得到 y 与 x 的图。pgfplots如果没有其他指示,则使用第一列表示 x 值,第二列表示 y 值。

    如果你有一个逗号分隔的文件,即

    x,y
    1,1
    2,3
    

    那么你需要说

    \addplot table[col sep=comma] {<filename including extension>};
    
  • 如果有超过两列,则可以使用x=<column name>, y=<column name>、 或来选择 x 和 y 所需的列x index=<number>, y index=<number>。(当然,如果您愿意,也可以使用 的名称x,以及index的名称y。)例如,

    \addplot table[x=x, y=y] {<filename including extension>};
    

    对于上面显示的第一个示例文件,其中列标题实际上是xy

    如果第一行仅包含数字,pgfplots则不会将其读为列名,而是假设文件没有标题行。

    • <column name>写在第一行的文本,因此x对于上述例子,和 y`。
    • <number>是列号,但请注意,计数从零开始,因此要获取第一列,请x执行以下操作x index=0

示例代码(如果感兴趣的话):

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}

\usepackage{filecontents}
\begin{filecontents}{A.dat}
0 0
1 1
2 2
\end{filecontents}

\begin{filecontents}{B.csv}
0,1
1,2
2,3
\end{filecontents}

\begin{filecontents}{C.montypython}
foo bar baz
0 2 3
1 3 4
2 4 5
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table {A.dat};
\addplot table[col sep=comma] {B.csv};
\addplot table[x=foo, y=bar] {C.montypython};
\addplot table[x index=0, y index=2] {C.montypython};

\legend{A,B,C1,C2}
\end{axis}
\end{tikzpicture}
\end{document}

上述代码的输出

相关内容