2012-05-27 33 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