gnuplot:在y轴上绘制一个包含4列的文件

时间:2013-04-18 01:52:16

标签: gnuplot curves

我有一个包含4个数字的文件(min,max,mean,standard derivation),我想用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值。

谢谢。

2 个答案:

答案 0 :(得分:75)

您可以绘制同一文件的不同列,如下所示:

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

...表示继续)。关于此表示法的几点注释:using指定要绘制的列,即第一个using语句中的第0列和第1列,第0列是转换为数据中当前行号的伪列文件。请注意,如果只有一个参数与using一起使用(例如using n),则表示using 0:n(感谢您指出 mgilson )。

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

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

结果:

for-loop plot

如果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-loop plot with column headers

答案 1 :(得分:11)

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

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

在这种情况下,它无论如何都会改变:

plot for [col=1:4:1] 'file' using col with lines