2014-05-06 41 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 

不幸的是,大多數的命令不能用改變的變量名稱正確迭代。