你们中有人知道pgfplots
从外部文件获取的图表的标准格式吗(以及接受的文件类型,例如) txt
,dat
以及应该在文件中放入什么才能\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>};
对于上面显示的第一个示例文件,其中列标题实际上是
x
和y
。如果第一行仅包含数字,
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}