8.6 -X 和 -Y 选项

-X-Y 选项用于控制绘图的原点。

当需要在一张图上绘制多个子图时,通常可以使用GMT提供的 子图模式。若子图的布局不规则,或对于子图原点有更复杂的需求,则需要使用 -X-Y 选项移动子图的底图原点的位置。

-X-Y 的用法类似。下面仅以 -X 选项为例介绍其用法。其语法为:

-X[a|c|f|r][<xshift>[<u>]]

其中 <xshift> 是新原点相对于当前原点的X方向偏移量,<u> 为偏移量的单位。

在偏移量之前加上不同的字符表示不同的含义:

  • -X2i-Xr2i:在原底图原点的基础上沿X方向偏移2英寸得到新底图原点
  • -Xa5c:在原底图原点的基础上沿X方向偏移5厘米得到临时底图坐标,当前命令执行完成后,底图原点复原到原底图原点
  • -Xc:将底图绘制在整张纸的中心
  • -Xc3c:在纸张中心的基础上沿X方向偏移3厘米得到新底图原点
  • -Xf4c:在纸张左下角的基础上沿着X方向偏移4厘米得到新底图原点
  • -X 不接任何额外参数,则继承前一个GMT命令使用该选项时的参数值

-X-Y 选项的用法介绍起来有些难度,多试试就好,下面举个简单的例子:

gmt begin test pdf
gmt basemap -JX5c/2c -R0/5/0/2 -B1
gmt basemap -B1 -X7c
gmt basemap -B1 -X-7c -Y4c
gmt basemap -B1 -X7c
gmt end

上图用四个 basemap 命令绘制了四张底图,绘图效果如下:

Source Code

../../_images/XY-gmtplot-0.png

解释:

  1. 第一个命令的绘图原点位于纸张左下角,绘制底图1
  2. 第二个将绘图原点右移了7 cm,绘制底图2
  3. 为了绘制底图3,第三个命令将底图左移了7 cm,并上移4 cm
  4. 第四个命令在底图3的基础上右移7 cm,绘制底图4

实际绘图时会发现一些不方便的地方。比如 -X-Y 的偏移量与前一张底图的大小息息相关。若修改了前一张底图的大小,则下一张底图的偏移量也需要相应修改。为解决这一问题,GMT6为该选项引入了一种新的语法:

-X[+|-]w[[+|-|/]<xshift>[u]]
-Y[+|-]h[[+|-|/]<yshift>[u]]

其中 wh 分别表示前一底图的宽度和高度。

看上去语法很复杂,举几个例子:

  • -Yh+2c:沿着Y轴上移,上移距离为前一底图高度+2厘米
  • -Xw-2c:沿着X轴右移,右移距离为前一底图宽度-2厘米
  • -Xw/2:沿着X轴右移,右移距离为前一底图宽度/2
  • -Y-h-2c:沿着Y轴下移,下移距离前一底图高度+2厘米
  • -X-w+2c:沿着X轴左移,左移距离前一底图宽度-2厘米

因而,上面的示例可以改写为更灵活的版本:

gmt begin test pdf
gmt basemap -JX5c/2c -R0/5/0/2 -B1
gmt basemap -B1 -Xw+2c
gmt basemap -B1 -X-w-2c -Yh+2c
gmt basemap -B1 -Xw+2c
gmt end