2014-02-25 95 views
-1

我想繪製一系列曲線在空間中使用gnuplot。
我正在嘗試使用for -loops。數據分爲4列,每20行開始一個新圖,例如,如果我使用3列和4列進行繪圖,在第21行上,第三列中的索引再次開始,而第第二列增加一個。這種模式重複,每320行,第一列的索引增加1,所有模式重複一次。
第一列的索引從2.0到3.8,而第二列的索引從75到90.
在我的代碼中,我嘗試將範圍限制從1.8設置爲4.2,對於一個軸設置範圍限制爲0到100爲第二軸。Gnuplot,與splot疊加曲線

我寫了下面的代碼

a=0 # this variable indicates how many rows to skip 
do for [j=20:38:1]{ # loop for the first column 
do for [i=75:90:1]{ # loop for the second column # 
splot [1.8:4.2][1:101] "dataforgnuplot" every ::a::a+19 u 1:3:4 
    w lines title sprintf("%3.2f %3.2f",j/10.0, i); 
a=a+20; 
} 
} 

,並在同一時間產生一個曲線,但是前一個消失了,我看了一眼multiplot,也與replot努力,但是,我還是避風港沒有找到如何做到這一點。

回答

0

你應該採取不同的方式。如果你在輸入文件中的空白行放在正確的地方,並繪製整個文件,gnuplot將知道何時停止繪製一條曲線並開始下一條曲線。

gnuplot文檔:

單空白記錄指定的情節不連續;沒有線會連接由空白記錄分隔的點(如果它們是用線條樣式繪製的話)。

一行中的兩個空記錄表示單獨數據集之間的中斷。請參閱索引(第79頁)。

兩種情況的不同之處在於,屬於同一數據集(一個空白行)的單獨曲線將以相同顏色和圖例中的單個條目繪製。不同的數據集將具有不同的顏色和單獨的標籤。

如果您有控制權,應該很容易地更改輸出此數據的程序,以添加額外的空白行。如果您不控制它,一行或兩行腳本應該能夠插入空白行,或者根據您輸入的行數,或者通過檢查第一個和第二個數據記錄。

+0

That works !,謝謝! – joc

+0

@joc接受答案? – jwg