legend

官方文件:legend
簡介:在圖上添加圖例

legend 模塊用於繪製圖例,圖例由圖例文件控制。如無特別說明,標註的字體由 FONT_ANNOT_PRIMARY 控制。

語法

gmt legend [ specfile ] -Drefpoint [ -Bparameters ] [ -Cdx/dy ] [ -Fbox ] [ -Jparameters ] [ -Rregion ] [ -Sscale ] [ -Tfile ] [ -U[stamp] ] [ -V[level] ] [ -X[a|c|f|r][xshift[u]] ] [ -Y[a|c|f|r][xshift[u]] ] [ -pflags ] [ -ttransp ] [ --PAR=value ]

必須選項

-D[g|j|J|n|x]refpoint+wwidth[/height][+jjustify][+lspacing][+odx[/dy]]

指定圖例框的尺寸和位置

簡單介紹各子選項的含義,詳情見 繪製修飾物

  • g|j|J|n|x]refpoint指定地圖上的參考點
    • g 指定某地圖座標位參考點
    • j|J 通過2字母的對齊方式碼指定矩形區域的某個錨點作爲參考點
    • n 在歸一化座標系(即0-1)中指定參考點
    • x 在繪圖座標系下指定參考點
  • +jjustify 指定圖例框的錨點(默認錨點在左下角(BL))
  • +odx/dy 在參考點的基礎上設置圖例框的額外偏移量
  • +wwidth[/height] 指定圖例框的尺寸。若 height 爲0或未指定,則根據圖例內容自動估算圖例框高度。
  • +lspacing 設置圖例裏的行間距 [默認值1.1,即當前字體大小的1.1倍]

該選項幾個比較有用的用法是:

  • 將圖例放在左下角: -DjBL+w4c+o0.2c/0.2c
  • 將圖例放在左上角: -DjTL+w4c+o0.2c/0.2c
  • 將圖例放在右下角: -DjBR+w4c+o0.2c/0.2c
  • 將圖例放在右上角: -DjTR+w4c+o0.2c/0.2c

可選選項

-Bparameters (more …)
设置底图边框和轴属性
-Cdx/dy
設置圖例邊框與內部圖例之間的空白 [默認值 4p/4p]
-F[+cclearances][+gfill][+i[[gap/]pen]][+p[pen]][+r[radius]][+s[[dx/dy/][shade]]]

控制圖例的背景面板屬性

若只使用 -F 而不使用其它子選項,則繪製圖例框。下面簡單介紹各子選項,詳細用法見 繪製修飾物

  • +ppen 指定背景面板的畫筆屬性(默認畫筆屬性由 MAP_FRAME_PEN 決定)
  • +gfill 設置背景面板的填充色 [默認不填充]
  • +cclearances 以設置不同方向的空白間隔
  • +igap/pen 在背景面板內部繪製一個額外的內邊框。gap 爲外邊框與內邊界之間的距離 [2p],默認邊界屬性由 MAP_DEFAULT_PEN 控制
  • +rradius 控制圓角矩形邊框,圓角矩形半徑 radius 默認爲 6p
  • +s 繪製背景面板陰影區。dx/dy 是陰影區相對於背景面板的偏移量 [4p/4p]。 shade 爲陰影區的顏色 [gray50]。
-Jprojection (more …)
设置地图投影方式。
-Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)
指定数据范围
-Sscale
對圖例中的所有符號大小乘以 scale [默認值爲 1]
-Tfile

將隱藏的圖例文件輸出到文件中 [僅適用於現代模式]

現代模式下,某些模塊(如 plot)可以使用 -l 選項自動編輯一個隱藏的圖例文件。在最終成圖時,會根據這一圖例文件繪製圖例。該選項可將該隱藏圖例文件的內容保存到新文件中,使得用戶可以在自動圖例文件的基礎上做進一步自定義。

-U[label][+c][+jjust][+odx/dy] (more …)
在图上绘制GMT时间戳logo
-V[level] (more …)
设置 verbose 等级 [c]

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

-Y[a|c|f|r][yshift[u]] (more …)
移动绘图原点
-p[x|y|z]azim[/elev[/zlevel]][+wlon0/lat0[/z0]][+vx0/y0] (more …)
设置3D透视视角
-t[transp] (more …)
设置图层透明度(百分比)。取值范围为0(不透明)到100(全透明)
-^-
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -
-++
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
-? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
--PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 gmt.conf

圖例文件格式

圖例文件用於控制圖例中各項的佈局。圖例文件中的每個記錄對應圖例中的一項,圖例中每項的順序由記錄的先後順序決定。每個記錄的第一個字符決定了當前記錄的圖例類型。GMT中共有14種圖例類型,列舉如下:

# comment
以 # 開頭的行或空行是註釋行,會被跳過
A cptname
指定CPT文件,使得某些記錄可以通過指定Z值來設定顏色,可以多次使用該記錄以指定不同的CPT文件
B cptname offset height [ optional arguments ]

繪製水平colorbar

  • offset 是colorbar相對於圖例框左邊界的距離
  • height 是colorbar高度,其後可以加上子選項 [+e[b|f][length]][+h][+m[a|c|l|u]][+n[txt]]
  • optional argumentscolorbar 模塊的其它選項,如 -B -I -L -M -N -S -Z -p
C textcolor

接下來的文本所使用的顏色

可以直接指定顏色,也可以用 z=val 指定Z值,以從CPT文件中查找相應的顏色(CPT文件由 A 記錄指定)。若 textcolor-,則使用默認顏色。

D [offset] pen [-|+|=]

繪製一條水平線

  • offset 爲線條左右頂端與圖例邊框的空白距離 [默認爲0]
  • pen 爲線條的畫筆屬性。若未指定 pen,則使用 MAP_GRID_PEN_PRIMARY。若 pen 設置爲 -,則繪製一條不可見的線(供 V 記錄使用)
  • 默認情況下,線條上下各留出四分之一的行間距,-|+|= 分別表示線條上方無空白、線條下方無空白和線條上下均無空白。
F fill1 fill2 … filln

指定單元的填充色。

可以直接指定顏色,也可使用 z=value 形式指定從CPT文件(由 A 記錄指定)中查找顏色。若只給定了一個 fill,則整行都使用相同的填充色,否則依次爲當前行的每列應用不同的 fill(列數由 N 記錄控制)。若 fill-,則不填充。

G gap

給定一個垂直空白

空白的高度由 gap 決定,gap 可以用 i|c|p 單位,也可以用 l 作爲單位表示幾倍行距的空白,gap 也可以取負值,表示將當前行上移。

H* font|- header

爲圖例指定一個居中的標題。

header 爲標題,font 爲文字屬性。若字體爲 - 則使用默認字體 FONT_TITLE

I imagefile width justification

將EPS或光柵文件放在圖例中

width 爲圖片寬度;justification 爲圖片的對齊方式。

L font|- justification label

在某一列增加指定的文字

label 爲顯示的文本,font 爲字體。若 font- 則使用默認字體 FONT_LABELjustification 爲對齊方式,可以取 L|C|R,分別表示左對齊、居中對齊和右對齊

M slon|- slat length[+f][+l[label]][+u] [-Fparam] [ -Rw/e/s/n -Jparam ]

在圖例中繪製比例尺。

slonslat 用於指定繪製哪一點的比例尺。slon 僅對特定的傾斜投影有效。對於一般投影,應設置爲 -

length 爲比例尺長度,其後可以接長度單位,以及多個子選項。子選項的具體含義見 basemap 模塊的 -L 選項。

若想要爲比例尺加上背景面板,則可以使用 basemap-F 選項。此外,還可以加上 -R-J 指定比例尺所使用的投影參數。

N [ncolumns or relwidth1 relwidth2 … relwidthn]

修改圖例中的列數 [默認爲1列]

該記錄僅對 SL 記錄有效。該記錄指定的列數會一直有效直到再次使用 N 記錄。 ncolumns 用於指定若干個等寬的列,relwidth1 relwidth2 … relwidthn 用於指定每列所佔的相對寬度,所有寬度的和應等於 -D 選項所設置的寬度相等。

P paragraph-mode-header-for-pstext
在圖例中添加文本段落,參考 text 命令中的段落模式
S [dx1 symbol size fill pen [ dx2 text ]]

在圖例中繪製符號

  • dx1 符號中心與左邊框的距離。若爲 - 則自動設置爲最大的符號大小的一半。 dx1 除了可以指定距離,還可以使用 L|C|R 表示符號在當前列的對齊方式
  • symbol 指定要繪製的符號類型,見 plot 命令的 -S 選項。symbol- 表示繪製線段
  • size 符號大小
  • fill 符號的填充色。使用 - 表示不填充。fill 也可以用 z=val 的形式從CPT文件中根據Z值查找顏色
  • pen 符號的輪廓屬性。使用 - 表示不繪製輪廓
  • dx2text 與左邊框的距離。使用 - 則自動設置爲最大符號大小的1.5倍
  • text 是符號的文字說明,字體由 FONT_ANNOT_PRIMARY 控制

若只有 S 而不接其它任何信息,則直接跳至下一列。若 symbolf qv,可以在符號後加上更多的子選項,詳情見 plot 模塊 -S 選項。某些符號(例如矩形、橢圓等)需要指定多個 size,應將多個 size 用逗號分隔作爲 size 即可。如果只給了一個 size,則其餘 size 由GMT默認值決定。

T paragraph-text
打印一段文本,字體由 FONT_ANNOT_PRIMARY 控制
V [offset] pen

在兩列之間繪製垂直的線條

offset 爲線條上下兩端與圖例邊框的空白距離 [默認爲0]。

默認值

對於如下符號,若用戶不顯式指定屬性,繪製圖例時使用如下默認值:

  • front符號 f:front 符號位於左側,其大小爲指定符號大小的30%
  • 矢量符號 v:箭頭大小爲符號大小的30%
  • 橢圓符號 e|E:主軸長度爲符號大小,次軸長度是符號大小的65%,方位角爲0
  • 矩形符號 r:寬度爲符號大小,高度爲寬度的65%
  • 旋轉矩形符號 j|J:寬度爲符號大小,高度爲寬度的65%,旋轉角度爲30度
  • 圓角矩形符號 R:寬度爲符號大小,高度爲寬度的65%,角半徑爲寬度的10%
  • 數學圓弧符號 m|M:角度在-10°-45°,箭頭大小爲符號大小的30%
  • 楔形符號 w:角度爲-30°到30°

示例

#!/bin/bash

gmt begin legend pdf,png
gmt makecpt -Cpanoply -T-8/8/1 -H > tt.cpt
gmt set FONT_ANNOT_PRIMARY 12p
gmt legend -R0/10/0/10 -JM6i -Dx0.5i/0.5i+w5i+jBL+l1.2 -C0.1i/0.1i -F+p+gazure1+r -B5f1 << EOF
# Legend test for gmt pslegend
# G is vertical gap, V is vertical line, N sets # of columns, D draws horizontal line,
# H is ps=legend.ps
#
G -0.1i
H 24p,Times-Roman My Map Legend
D 0.2i 1p
N 2
V 0 1p
S 0.1i c 0.15i p300/12 0.25p 0.3i This circle is hachured
S 0.1i e 0.15i yellow 0.25p 0.3i This ellipse is yellow
S 0.1i w 0.15i green 0.25p 0.3i This wedge is green
S 0.1i f 0.25i blue 0.25p 0.3i This is a fault
S 0.1i - 0.15i - 0.25p,- 0.3i A contour
S 0.1i v 0.25i magenta 0.5p 0.3i This is a vector
S 0.1i i 0.15i cyan 0.25p 0.3i This triangle is boring
D 0.2i 1p
V 0 1p
N 1
M 5 5 600+u+f
G 0.05i
I @SOEST_block4.png 3i CT
G 0.05i
B tt.cpt 0.2i 0.2i -B0
G 0.05i
L 9p,Times-Roman R Smith et al., @%5%J. Geophys. Res., 99@%%, 2000
G 0.1i
T Let us just try some simple text that can go on a few lines.
T There is no easy way to predetermine how many lines may be required
T so we may have to adjust the height to get the right size box.
EOF
rm -f tt.cpt
gmt end
../_images/legend-gmtplot-0.png

legend示例圖1

相關模塊

gmtlogo, basemap, text, plot