在gnuplot的多图模式下,gnuplot边距是如何工作的?

15

我对gnuplot的边距有点困惑。首先,我不知道这些单位指向什么。它们是指向画布坐标还是画布坐标的一部分。它们在gnuplot模式和多图模式下的行为是否相同?

当我在多图模式下绘制一些数据时,出现了问题。我正在屏幕上绘制(wtx终端)。简单地说,我搞砸了一切 - 我得到了超出画布的绘图或非常小且难以阅读的绘图。

没有边距时,第一个绘图紧贴在画布顶部,因此我自然希望将其向下推一些。

可以有人解释一下gnuplot边距是如何工作的,以及它们是否在多图模式下的行为相同。

1个回答

17

是的,在“正常”绘图模式和多图模式下,边距的行为非常相似。基本上,边距可以有三种不同的“模式”:

  1. 自动模式,即默认模式。
  2. 将每个边距设置为特定大小,例如 set lmargin 2。单位是字符宽度(对于 tmarginbmargin,则为字符高度)。
  3. 设置边框相对于整个画布的特定位置,例如 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


这是一个非常全面的答案,我非常感激。使用 set lmargin 或 set lmargin at screen 时,单位确实有所不同,这是一种困惑的来源,现在已经得到了澄清。 - Xofo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接