我有这些数据:
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};
这是我得到的图表:
非常感谢!
顺便说一下。在实际数据中,一个数据集在数据中间缺少x / y值。我希望与我的例子相比并不重要。
答案 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文件中,但它也应该使用单独的数据文件。