6

我正在尝试使用带有 multiplot 的 gnuplot 并排放置两个数字。我希望生成的图像是矩形的,所以我使用 set size 2, 1。我还设置了 set multiplot layout 1, 2 选项。但是,生成的图像仅使用可用空间的左侧部分。任何帮助将不胜感激。谢谢艾哈迈德

这是生成的图像 http://tinypic.com/r/33mlz04/6

下面是我正在使用的 gnuplot 命令。

设置终端后记 eps 颜色增强
设置输出'figure.eps';
设置大小 2,1;

设置多图布局 1, 2 ;
设置标题“图1”;
  绘制“data1.txt”
设置标题“图1”;
 绘制“data2.txt”
未设置多图

虽然我不太确定,但经过一些试验和错误,我已经解决了

    设置终端后记 eps 颜色增强

    设置输出'eps/image.eps';
    设置大小 1,0.5;

    设置多图布局 1, 2 ;
    设置标题“图1”;
    设置大小 0.5,0.5;
    绘制“数据/data1.txt”
    设置标题“图1”;
    设置大小 0.5,0.5;
    绘制“数据/data2.txt”
    未设置多图

4

3 回答 3

9

尝试类似:

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 中有所不同。为了获得更好的解释,请尝试help set size使用 gnuplot。

于 2012-05-27T14:38:47.593 回答
4

为了更好地控制绘图的大小/位置,您可以set origin结合使用set size来更改每个绘图的位置和大小。最后,可以使用set lmargin at <place>(and 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 会尝试为您的标签等设置足够大的边距,但设置边距会显式禁用它。我建议您使用 andyras 的解决方案。

于 2012-05-27T15:46:40.390 回答
1

如果您在使用此方法处理超过 2 个数字时遇到问题,请在“设置大小 0.5,0.5”之后添加“设置原点 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
于 2018-02-26T10:54:12.310 回答