2012-06-15 34 views
11

我正嘗試在gnuplot中使用png終端的replot。Gnuplot - 與png終端一起使用replot

如果我做了以下我得到的一個圖中,兩個地塊沒有任何問題:

plot sin(x)/x 
replot sin(x) 

現在如果做同樣的PNG終端類型所產生的PNG文件只包含第一個情節。

set terminal png 
set output 'file.png' 
plot sin(x)/x 
replot sin(x) 

我錯過了什麼在最後得到第二個情節在我的PNG文件?

回答

14

其實,這是一個很好的問題,這裏的行爲是終端依賴。一些終端(例如postscript)會爲您提供每個replot的新頁面。你有幾個解決方案...

第一個選項:你可以讓你的情節設置終端/輸出之前,然後再重新繪製您設置的終端/輸出後:

plot sin(x)/x 
replot sin(x) 
set terminal png 
set output 'file.png 
replot 

這如果你想在多個終端上繪製相同的東西,選項有時很方便,但我很少將它用於其他任何東西。

秒(更好)選項:您可以將多個圖組打包成一個命令,每個命令用逗號分隔。

set terminal png 
set output 'file.png' 
plot sin(x)/x, sin(x) 

我非常喜歡第二種方式 - 當在多槽環境中時,這是將多個圖放在同一個圖上的唯一方法。如果你有很長的功能來繪製,你可以打破與gnuplot的的續行線(\在該行的結尾 - 在\後,沒有什麼是允許的,甚至沒有空格)

plot sin(x)/x with lines linecolor rgb "blue" linetype 7 lineweight 4, \ 
    sin(x),               \ 
    cos(x) 
+2

謝謝。這些命令將從腳本發送。我可以使用第一個選項,並在'設置終端未知'之前避免窗口彈出。第二個選項使我的需要稍微複雜一些。我真的需要'重繪'的方式。 – Noel

+1

@Noel - 沒問題。樂意效勞。另一件事是第二個解決方案會稍微有效一些。我非常高興地發現你瞭解了'未知'終端。這是一個大多數人不知道的gnuplot的漂亮角落。祝你好運! – mgilson