TikZ:绘制缺少值的数据文件

时间:2017-08-21 18:27:53

标签: latex tikz pgf

我有这些数据:

values

data2缺少第三点。所以我想,我定义了两个不同的x列并将data2分配给x2。

问题:data1的第三个点在编译图形中最多为3。如果我有不同的值和更多的值,则点开始在任何地方,但不是它们所属的位置。

这是我用过的代码:

\addplot[only marks, mark = diamond, color = orange, mark size = 3pt]
 table[x=x1, y=data1]{example.dat};
\addlegendentry{data1};

\addplot[only marks, mark = square, color = gray, mark size = 3pt]
 table[x=x2, y=data2]{example.dat};
\addlegendentry{data2};

\addplot[only marks, mark = o, color = blue, mark size = 3pt]
 table[x=x1, y=data3]{example.dat};
\addlegendentry{data3};

这是我得到的图表:

graph

非常感谢!

顺便说一下。在实际数据中,一个数据集在数据中间缺少x / y值。我希望与我的例子相比并不重要。

1 个答案:

答案 0 :(得分:1)

pgfplots将2个标签解释为单个分隔符。因此,它将数据文件视为:

x1  x2  data1   data2   data3
0   0   1   2   3
1   1   1   2   3
2   1   3

解决方案1。您可以使用 NaN 替换空单元格。 pgfplots会正确解释这一点:

x1  x2  data1   data2   data3
0   0   1   2   3
1   1   1   2   3
2   nan 1   nan 3

解决方案2. 使用其他类型的分隔符(例如,分号或逗号):

\begin{filecontents*}{example.csv}
x1;x2;data1;data2;data3
0;0;1;2;3
1;1;1;2;3
2;;1;;3
\end{filecontents*}
\pgfplotstableread[col sep = semicolon]{example.csv}\mydata

\begin{document}
...

这里我已将数据文件包含在TeX文件中,但它也应该使用单独的数据文件。

enter image description here