-X 和 -Y 選項

-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]] -X[+|-]h[[+|-|/]xshift[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