2013-07-29 14 views
2

我有大量(超過2000)的數據文件,我想要使用Gnuplot進行繪製。每個文件都包含要在同一圖表內繪製的多組數據。我正在使用Perl腳本將每個文件預處理爲Gnuplot要獲取的表單並生成Gnuplot腳本,該腳本將由Perl的系統調用執行以生成outplot文件。每個數據文件可能包含大約10組數據,其中每組數據表示另一個參數的不同值。我想用一條實線繪製每個集合,但使用不同的顏色,並在圖例/關鍵字中有一個代表這個其他參數值的標籤。爲了獲得多種顏色的線條,我現在正在對每個文件進行重新格式化,以使第一組(1列)先出現(2列),後面跟着兩個空白行,然後是第二組(2列),後面跟着兩個空白行等等。每個集合的第一行都有一個列標題。第二列標題的目的是作爲該組的鍵的文本。在gnuplot腳本的開頭我已經把一個Gnuplot腳本不會爲多個數據集創建正確的鍵/圖例標籤

set key autotitle columnheader 

我生成具有以下

plot for [i=0:9] "datafile" using 1:2:(column(-2)) with lines lc variable 

這主要工作,除了所有的鍵標籤的情節是相同的,都是從標籤第一個數據集。

如果我重新格式化數據文件,使我有數據的11個欄目(1×和10 Y列)並使用

plot for [i=0:9] "datafile" using 1:(column(i+2)) title columnhead(i+2) with lines 

我能得到我想要的關鍵標籤,但現在不能得到在每一行不同的顏色。

如果這些不起作用,是一種替代方法來獲得可能不同於一個文件的密鑰標籤。

回答

1

您需要明確地使用index來選擇數據集,那麼密鑰是正確的。考慮數據文件

"first set" 
1 1 
2 2 


"second set" 
3 3 
4 4 

plot for [i=0:1] "datafile" using 1:2:(column(-2)) index i title columnhead(1) lc variable 

因此,對於你的數據文件繪製此繪圖命令將

plot for [i=0:9] "datafile" using 1:2:(column(-2)) index i title columnhead(1) with lines lc variable 

添加的title columnhead(1)是我給的例子必要的,因爲gnuplot 4.6版在單列頭上掙扎了兩列數據。在當前的開發版本中,這不再是必要的。

相關問題