GMT中文效果演示¶
中文文字¶
本例中展示瞭如何在繪圖時使用中文標籤和中文標題,以及如何打印橫排和豎排的中文。
- 左圖中Y軸標籤與縱軸平行
- 中圖中Y軸標籤與X軸平行
- 右圖中Y軸標籤單獨繪製並使用了豎排中文字體。
gmt begin chinese-texts png
# 左图
gmt set FONT_TITLE 24p,41,black FONT_LABEL 16p,39,black
gmt basemap -R0/10/0/5 -JX6c/4c -Bxaf+l"横轴" -Byaf+l"纵轴" -BWSen+t"中文标题"
gmt text -F+f << EOF
3 2.5 20p,39,black 横排文字
8 4.0 20p,43,red 竖排文字
EOF
# 中图
gmt set FONT_TITLE 24p,41,black FONT_LABEL 16p,39,black
gmt basemap -R0/10/0/5 -JX6c/4c -Bxaf+l"横轴" -Byaf+L"纵轴" -BWSen+t"中文标题" -X9c
gmt text -F+f << EOF
3 2.5 20p,39,black 横排文字
8 4.0 20p,43,red 竖排文字
EOF
# 右图
gmt set FONT_TITLE 24p,41,black FONT_LABEL 16p,39,black
gmt basemap -R0/10/0/5 -JX6c/4c -Bxaf+l"横轴" -BWSen+t"中文标题" -X9c
gmt basemap -Byaf+L"纵轴" -BW --FONT_LABEL=16p,43,black --MAP_LABEL_OFFSET=20p
gmt text -F+f << EOF
3 2.5 20p,39,black 横排文字
8 4.0 20p,43,red 竖排文字
EOF
gmt end
中文月份¶
注解
GMT中文語言文件是GMT安裝目錄下的文件 share/localization/gmt_cn1.locale
。該中文語言文件默認爲GB2312編碼方式。對於Linux和macOS用戶,需要人工將其修改爲
UTF8 編碼才能正常顯示中文的月份和星期。Windows用戶則不需要對其進行處理。
修改文件編碼方式的方式有很多,請自行查找。我使用的是 enca 的如下命令修改編碼:
enca -L zh_CN -x UTF-8 gmt_cn1.locale
GMT支持中文的月份。要想使用中文表示月份,需要設置 GMT_LANGUAGE 爲中文,即 cn1
,並設置標註的字體爲中文。
gmt begin chinese-months png
# 设置GMT语言为中文
gmt set GMT_LANGUAGE cn1
# 设置标注的字体为中文字体
gmt set FONT_ANNOT_PRIMARY 16p,39,black
# FORMAT_TIME_PRIMARY_MAP 为 full 表示显示“一月”
gmt set FORMAT_DATE_MAP o FORMAT_TIME_PRIMARY_MAP full
gmt basemap -R1997T/1998T/0/10 -JX25c/4c -Bpxa1O -Byaf -BWSen
# FORMAT_TIME_PRIMARY_MAP 为 abbreviated 表示显示“一”
gmt set FORMAT_DATE_MAP o FORMAT_TIME_PRIMARY_MAP abbreviated
gmt basemap -R1997T/1998T/0/10 -JX25c/4c -Bpxa1O -Byaf -BWSen -Y-6c
gmt end
中文星期¶
GMT支持中文的星期。要想使用中文表示星期幾,需要設置 GMT_LANGUAGE 爲中文,即 cn1
,並設置標註的字體爲中文。
gmt begin chinese-weeks png
# 设置GMT语言为中文
gmt set GMT_LANGUAGE cn1
# 设置标注的字体为中文字体
gmt set FONT_ANNOT_PRIMARY 12p,39
# FORMAT_TIME_PRIMARY_MAP 为 full 表示显示“星期一”
gmt set FORMAT_DATE_MAP u FORMAT_TIME_PRIMARY_MAP full
gmt basemap -R1969-7-21T/1969-7-28T/0/4 -JX15c/3c -Bpxa1K -Byaf -BWSen
# FORMAT_TIME_PRIMARY_MAP 为 abbreviated 表示显示“周一”
gmt set FORMAT_DATE_MAP u FORMAT_TIME_PRIMARY_MAP abbreviated
gmt basemap -R1969-7-21T/1969-7-28T/0/4 -JX15c/3c -Bpxa1K -Byaf -BWSen -Y-5c
gmt end