37

我有一个包含 4 个数字(最小值、最大值、平均值、标准导数)的文件,我想用 gnuplot 绘制它。

样本:

24 31 29.0909 2.57451
12 31 27.2727 5.24129
14 31 26.1818 5.04197
22 31 27.7273 3.13603
22 31 28.1818 2.88627

如果我有一列有 4 个文件,那么我可以这样做:

gnuplot "file1.txt" with lines, "file2.txt" with lines, "file3.txt" with lines, "file4.txt" with lines

它将绘制 4 条曲线。我不关心 x 轴,它应该只是一个恒定的增量。

我怎么能请情节?我似乎找不到一种方法来让 4 条曲线和 1 个文件和 4 列,只是有一个不断增加的 x 值。

谢谢你。

4

2 回答 2

87

您可以像这样绘制同一文件的不同列:

plot 'file' using 0:1 with lines, '' using 0:2 with lines ...

...表示继续)。关于这个符号的一些注意事项:using指定要绘制哪一列,即第一using条语句中的第 0 列和第 1 列,第 0 列是一个伪列,它转换为数据文件中的当前行号。请注意,如果只有一个参数与using(eg using n) 一起使用,则它对应于说using 0:n(感谢您指出mgilson)。

如果您的 Gnuplot 版本足够新,您将能够使用 for 循环绘制所有 4 列:

set key outside
plot for [col=1:4] 'file' using 0:col with lines

结果:

for循环图

如果它们在数据文件中,Gnuplot 可以使用列标题作为标题,例如:

min max mean std
24 31 29.0909 2.57451
12 31 27.2727 5.24129
14 31 26.1818 5.04197
22 31 27.7273 3.13603
22 31 28.1818 2.88627

set key outside
plot for [col=1:4] 'file' using 0:col with lines title columnheader

结果是:

带有列标题的 for 循环图

于 2013-04-18T07:34:19.313 回答
14

只是要补充一点,您可以将 for 循环中的增量指定为第三个参数。如果要绘制每第 n 列,这很有用。

plot for [col=START:END:INC] 'file' using col with lines

在这种情况下,它什么都没有改变,但无论如何:

plot for [col=1:4:1] 'file' using col with lines
于 2014-02-04T09:27:44.190 回答