我对gnuplot的边距有点困惑。首先,我不知道这些单位指向什么。它们是指向画布坐标还是画布坐标的一部分。它们在gnuplot模式和多图模式下的行为是否相同?
当我在多图模式下绘制一些数据时,出现了问题。我正在屏幕上绘制(wtx终端)。简单地说,我搞砸了一切 - 我得到了超出画布的绘图或非常小且难以阅读的绘图。
没有边距时,第一个绘图紧贴在画布顶部,因此我自然希望将其向下推一些。
可以有人解释一下gnuplot边距是如何工作的,以及它们是否在多图模式下的行为相同。
是的,在“正常”绘图模式和多图模式下,边距的行为非常相似。基本上,边距可以有三种不同的“模式”:
set lmargin 2
。单位是字符宽度(对于 tmargin
和 bmargin
,则为字符高度)。set lmargin at screen 0.1
,它将左侧绘图边框设置为总画布宽度的10%。唯一的区别是在multiplot
模式下,边距在第1点和第2点的参考系由layout
选项确定的站点给出:
set multiplot layout 2,2
这将整个画布分成四个相等大小的矩形。现在,使用
set lmargin 1
set rmargin 1
set tmargin 1
set bmargin 1
在每个子图的较小矩形周围,相对于较小矩形,在每一侧留下一个字符宽度或高度的边距:
set multiplot layout 2,2
set lmargin 0
set rmargin 0
set tmargin 0
set bmargin 0
set format ''
plot x
plot x**2
plot x**3
plot x**4
unset multiplot
set multiplot layout 2,2
set lmargin 1
set rmargin 1
set tmargin 1
set bmargin 1
set format ''
plot x
plot x**2
plot x**3
plot x**4
unset multiplot
如果您想设置每个边框的绝对位置,这将变得更加繁琐,因为您需要为每个图设置四个边距(在这种情况下,layout
选项没有任何效果):
set multiplot
set lmargin at screen 0.1
set rmargin at screen 0.47
set tmargin at screen 0.97
set bmargin at screen 0.6
plot x
...
Gnuplot的第5版提供了一种相当灵活的方法来生成等大小的矩形,请参阅我的答案Removing blank gap in gnuplot multiplot