我有一个包含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值。
谢谢。
答案 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
结果:
如果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
结果:
答案 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