添加圖例

繪製了線條與符號後,通常還需要添加圖例,以解釋不同數據的含義。GMT中使用 legend 模塊添加圖例。

自動圖例

在使用 plot 模塊繪製線條或符號時,可以額外加上 -llabel 選項以指定當前線段或符號的圖例標籤。

下面的示例中,我們利用前面學到的知識繪製了線段和兩種符號,同時使用了 -l 選項爲線段和符號均添加了標籤。在繪圖結束時,GMT會自動根據命令中提供的信息在右上角繪製了圖例。

gmt begin auto-legend png,pdf
gmt basemap -R0/10/0/10 -JX10c -Baf
gmt plot -W1p,blue -l"Profile" << EOF
3 3
6 8
EOF
gmt plot -Gred -Sa0.3c -W0.5p -l"Event" << EOF
5  5
EOF
gmt plot -Gblue -St0.3c -W0.5p -l"Station" << EOF
2 3
4 6
8 5
EOF
gmt end show
../_images/legend-gmtplot-01.png

還可以爲 -l 選項加上其它子選項以控制圖例的位置、大小以及其它顯示效果,在本教程中不再贅述。

設置圖例屬性

GMT 使用 legend 模塊添加圖例。上面的示例中我們並沒有調用 legend 模塊,而是 GMT 在繪圖結束時自動調用了 legend 添加圖例。我們也可以顯式調用 legend 模塊,並設置圖例的更多屬性。

gmt begin auto-legend png,pdf
gmt basemap -R0/10/0/10 -JX10c -Baf
gmt plot -W1p,blue -l"Profile" << EOF
3 3
6 8
EOF
gmt plot -Gred -Sa0.3c -W0.5p -l"Event" << EOF
5  5
EOF
gmt plot -Gblue -St0.3c -W0.5p -l"Station" << EOF
2 3
4 6
8 5
EOF
gmt legend -DjBR+o0.1c/0.1c -F+p1p+glightblue
gmt end show
../_images/legend-gmtplot-1.png

這個示例中,我們顯式調用了 legend 選項,並設置了 -D-F 選項。

  • jBR 表示將圖例放在底圖的右下角(BottomRight)
  • +o0.1c/0.1c 表示將圖例在右下角的基礎上再加上額外的偏移量
  • -F+p1p+glightblue 則設置了圖例框的輪廓和填充色

手動設置圖例

如果對於自動生成的圖例不滿意,還可以使用 legend 模塊繪製更復雜的圖例,其輸入文件有自己的一套規則,詳情見 legend 模塊的說明文件。這節只介紹最簡單也最常用的圖例,即符號和線條的圖例。針對繪製符號和線條,legend 的輸入格式爲:

S dx1 symbol size fill pen dx2 text
  • S 表明這一行用於繪製符號或線段。
  • dx1 是符號或線段與圖例左邊框的距離
  • symbol 是要繪製的符號類型代碼;若想要繪製線段,則設置 symbol-
  • size 符號尺寸或線段長度
  • fill 符號填充色;若不需要填充色,則可設置爲 -
  • pen 符號輪廓的畫筆顏色;若不需要繪製符號輪廓,則可設置爲 -
  • text 符號對應的文字說明
  • dx2 文字與左邊框之間的距離

下面的示例中,我們繪製了四種符號,以及線段、矢量線和斷層線。

gmt begin map png,pdf
gmt basemap -R0/10/0/8 -JX10c/8c -Baf -BWSen
cat > legend.txt << EOF
# symbols
S 0.25c c 0.3c -      0.25p,blue 0.8c circle
S 0.25c t 0.3c cyan   0.25p      0.8c triangle
S 0.25c i 0.3c blue   0.25p,red  0.8c triangle2
S 0.25c e 0.3c yellow 0.25p      0.8c ellipse
# lines
S 0.25c - 0.5c - 0.25p 0.8c line
S 0.25c - 0.5c - 0.25p,- 0.8c dashline
S 0.25c v0.1i+a40+e 0.25i magenta 0.25p 0.8c vector
S 0.25c f0.1i+l+t 0.25i blue 0.25p 0.8c fault
EOF
gmt legend legend.txt -DjBR+w2.8c+o0.1c/0.1c -F+p1p+glightblue
gmt end show
../_images/legend-gmtplot-2.png