2013-05-22 29 views
3

我想繪製兩個重疊的數字(一個「大」和另一個較小的「放大」)。問題是我不能在整個「小」圖上有一個堅實的背景,這意味着包括標籤,刻度標籤等。在Gnuplot中使用多槽的整個子圖的實體背景

有沒有人有想法?

這裏是我的問題(EDITED更接近於我的問題)的SWE:

reset 
set multiplot 
plot sin(x)/x ls -1 
set size 0.4,0.4 
set origin 0.6,0.5 
set object 1 rectangle from graph 0,0 to graph 1,1 behind fc rgb "#04AA40" 
plot sin(x)/x ls -1 
unset multiplot 

回答

2

看起來你可以使用幾乎一模一樣的代碼,你貼,但改變的multiplot命令和座標,以便將矩形重疊數字的標籤,以及:

reset 
set multiplot title "Plot 1" 
set object 1 rectangle from graph 0.45,0.45 to graph 1.1,1.1 front fc rgb "#04AA40" 
plot sin(x)/x ls -1 
unset object 1 
set size 0.5,0.5 
set origin 0.45,0.45 
plot sin(x)/x ls -1 
unset multiplot 

如果不工作,你能解釋一下爲什麼你不能對整個小小的身影的背景下,爲你說?

+0

我修改我的SWE以更接近我真正的問題。問題是綠色矩形不包括刻度和軸標籤。 – Sigmun

+0

嗯。你嘗試過我的例子嗎?我的區別在於,我把綠色矩形放在大圖上,然後在綠色矩形中繪製小圖。它似乎是一個有意義的約束,gnuplot無法在繪圖區域外繪製形狀,因此您可能無法相對於小繪圖的大小/位置自動定義綠色矩形。 – andyras

+0

好的,我很抱歉。雖然我嘗試了你的例子,但事實上,我再次運行我的;-)這是我想要的結果,但我很驚訝,gnuplot不知道每個圖的邊界框(或者至少,沒有辦法得到他們)。也許你對如何從寬度,高度,xorig,yorig等變量計算它們有了一個想法? – Sigmun

1

我通過這段代碼回答了我自己的問題,這是我正在尋找的最接近的東西,但仍然不滿意。如果有人有我怎樣才能自動獲得的利潤計算的想法,這個答案可能是其中之一......

reset 
set multiplot title "Plot 1" 
plot sin(x)/x ls -1 
xorig_sub=.1 
yorig_sub=.5 
width_sub=.35 
height_sub=.35 
lmarg_sub=0.09 
bmarg_sub=0.06 
rmarg_sub=0.025 
tmarg_sub=0.02 
xmin=xorig_sub 
xmax=xorig_sub+width_sub+rmarg_sub+lmarg_sub 
ymin=yorig_sub 
ymax=yorig_sub+height_sub+tmarg_sub+bmarg_sub 
set object 1 rectangle front from screen xmin,ymin to screen xmax,ymax fc rgb "#04AA40" fs solid 
clear 
replot 
unset object 1 
set lmargin at screen xmin+lmarg_sub 
set rmargin at screen xmax-rmarg_sub 
set bmargin at screen ymin+bmarg_sub 
set tmargin at screen ymax-tmarg_sub 
set size width_sub,height_sub  # set the size of the second plot in plot units 
set origin xorig_sub,yorig_sub  # set the origin for the second plot in plot units 
plot sin(x)/x ls -1 
unset multiplot 
+0

我只是偶然發現了你的Q/A。就像澄清一樣:你想要自動計算上面哪個裕度*? – Schorsch

+0

@Schorsch查看這個主題的主題,我希望有一個透明的整個子圖的背景,以使我的軸標題在上面。在我的例子中,爲了滿足我的要求,我必須告訴gnuplot子區域的邊界是多少。所以我的問題是如何在自動過程中做這樣的事情? – Sigmun

0

最近我有同樣的問題,看到了帖子。遊戲可能有點晚,但爲了完整:

reset 
set multiplot 
plot sin(x)/x ls -1 
set size 0.4,0.4 
set origin 0.6,0.5 
set object 1 rectangle from graph 0,0 to graph 1,1 fc rgb "#04AA40" fillstyle solid 0.0 noborder 
set ticks front 
plot sin(x)/x ls -1 
unset multiplot 

與gnuplot一起使用5.0。