2014-05-06 34 views
1

我的问题很基本。我使用gnuplot一次绘制几个函数,并且我想打印出(在文件或图形本身中)每个函数的最大y值。任何想法我怎么能做到这一点?如何在Gnuplot中打印多个函数的最大值

我看着STATS和GPVAL_DATA_Y_MAX,但我无法真正弄清楚如何让它们同时处理几个函数。

没有考虑太多的细节,让我们假设我的文件看起来像这样:

plot 'file1.dat' us 1:2 title "file1" w lines,\ 
    'file2.dat' us 1:2 title "file2" w lines,\ 
    'file3.dat' us 1:2 title "file3" w lines 

回答

2

可以使用stats选项的name参数为最大的每个文件的保存在​​不同的组变量:

stats 'file1.dat' using 2 nooutput name 'file1' 
stats 'file2.dat' using 2 nooutput name 'file2' 
stats 'file3.dat' using 2 nooutput name 'file3' 

现在你可以打印值到外部文件

set print 'max.dat' 
print file1_max 
print file2_max 
print file3_max 

如果您想要在图表中的最大值附近放置相应的标签,则还必须知道数据具有最大值的相应x值。这些数据不是第一个stats命令中可用的,只有它在数据文件中的索引。因此,你需要以stats额外的调用来获取的x值,其中最大的y值是:

stats 'file1.dat' using 1 every ::file1_index_max::file1_index_max name 'file1_x' 
... 

然后你就可以使用

set label center at first file1_x_max,first file1_max sprintf('y = %.2f', file1_max) offset char 0,1 

不幸的是,大多数的命令不能用改变的变量名称正确迭代。