2012-05-27 29 views
3

我想把兩個數字並排使用gnuplot與多槽。 我想要得到的圖像是矩形的,所以我使用設置大小2,1。我還設置了設置多槽佈局1,2選項。但是,生成的圖像僅使用可用空間的左側部分。任何幫助將不勝感激。 感謝 艾哈邁德gnuplot:如何把兩個數字並排

這裏是產生的圖像 http://tinypic.com/r/33mlz04/6

,下面將我使用的gnuplot的命令。

 
set terminal postscript eps color enhanced 
set output 'figure.eps'; 
set size 2,1; 

set multiplot layout 1, 2 ; 
set title "Figure 1"; 
    plot "data1.txt" 
set title "Figure 1"; 
plot "data2.txt" 
unset multiplot 

雖然我不是很肯定,有一些試驗和錯誤我已經解決了它

 

    set terminal postscript eps color enhanced 

    set output 'eps/image.eps'; 
    set size 1,0.5; 

    set multiplot layout 1, 2 ; 
    set title "Figure 1"; 
    set size 0.5,0.5; 
    plot "data/data1.txt" 
    set title "Figure 1"; 
    set size 0.5,0.5; 
    plot "data/data2.txt" 
    unset multiplot 

+1

歡迎來到StackOverflow!就風格而言,你不需要在gnuplot中追蹤分號(就像你在C中一樣)......雖然他們不會受到傷害,但他們傾向於使腳本不那麼可讀(恕我直言)。另外,如果您發現@andyras的解決方案有用,請隨時註冊或者將其標記爲可接受的解決方案。 – mgilson

回答

5

試着這麼做:

set terminal postscript eps color enhanced size 10,5 
set output 'figure.eps'; 

set multiplot layout 1, 2 ; 
set title "Figure 1"; 
plot "data1.txt" 
set title "Figure 1"; 
plot "data2.txt" 
unset multiplot 

當您設置的大小在終端上規範線,它決定了劇情畫布的實際大小(在這種情況下以英寸爲單位)。如果在單獨的行上使用set size,則會以相對單位的畫布大小設置圖的大小。這在舊版本的gnuplot中是不同的。或許更好的解釋,請在gnuplot中嘗試help set size

+0

謝謝安迪拉斯,雖然你所建議的不起作用,但它讓我嘗試了更多的可能性,並且我設法解決了這個問題。我把解決方案放在原來的帖子下。 –

+0

我很高興你解決了你的問題。我發佈的解決方案適用於我 - 您使用的是哪個版本的gnuplot? – andyras

+0

很好的工作指出了「畫布」的大小和個人情節的大小之間的差異。 (1) – mgilson

3

要更好地控制圖的大小/位置,可以使用set origin結合set size更改每個圖的位置和大小。最後,最大的控制可以通過set lmargin at <place>(和set rmargin ...)以及tmarginbmargin來實現,其中「lrtb」分別代表左側,右側,頂部和底部。

因此,要獲得一個陰謀,以填補所有可用空間(左到右),您可以:

set multiplot 
set lmargin at 0 
set rmargin at .5 
plot sin(x) 
set lmargin at .5 
set rmargin at 1 
plot cos(x) 
unset multiplot 

然而,這(通常)矯枉過正。通常gnuplot會嘗試使邊距足夠大,以適應您的標籤等,但設置邊距會明確禁用該邊距。我建議你去和安雅拉的解決方案。

1

如果您在使用此方法超過2個數字時遇到問題,請在'set size 0.5,0.5'後添加'set origin 0,0'。 例如,對於三位數字:

set terminal postscript eps color enhanced 

set output 'eps/image.eps'; 
set size 1.5,0.5; 

set multiplot layout 1, 3 ; 
set title "Figure 1"; 
set size 0.5,0.5; 
set origin 0,0 
plot "data/data1.txt" 
set title "Figure 2"; 
set size 0.5,0.5; 
set origin 0,0 
plot "data/data3.txt" 
set title "Figure 3"; 
set size 0.5,0.5; 
set origin 0,0 
plot "data/data3.txt" 
unset multiplot