设置配置参数

贡献者

王亮, 田冬冬

本节介绍 GMT 的配置参数及其设置方法。GMT 提供了 150 多个配置参数,用于控制图形的外观和数据的处理方式。这些配置参数一般都有默认值。有时,这些默认值并不合适。例如,下面这幅图的标题相对于底图大了一些,显得不协调。遇到类似的情况,可以自行设置相关配置参数,以细致地调节图形的外观或数据的处理方式。

gmt begin conf0
    gmt basemap -JX2c -R0/1/0/1 -Bwsen+t'Title'
gmt end show
../../_images/b5fc9db7ace0a036a2e61307ee1d7f07.png

要设置配置参数,就需要依次解决两个问题:第一个问题是确定需要修改的配置参数的名称,第二个问题是如何修改。所以,本节先介绍如何确定配置参数的名称,再介绍配置参数的设置方法。

确定配置参数的名称

使用 gmtdefaults 模块可以列出所有配置参数及其默认值。配置参数的名称是由它控制的元素的属性决定的,所以根据元素或属性的名称,即可找到对应的配置参数。上面的例子中的问题是标题的字体太大,因此需要修改的配置参数的元素是标题(TITLE),而属性是字体(FONT)。执行 gmt defaults 命令并用 grep 命令进行筛选,可以找到所有与标题(TITLE)有关的参数:

$ gmt defaults | grep TITLE
FONT_TITLE                     = 24p,Helvetica,black
MAP_TITLE_OFFSET               = 14p

下面的命令可以找到和字体(FONT)有关的参数:

$ gmt defaults | grep FONT
# FONT Parameters
FONT_ANNOT_PRIMARY             = 12p,Helvetica,black
FONT_ANNOT_SECONDARY           = 14p,Helvetica,black
FONT_HEADING                   = 32p,Helvetica,black
FONT_LABEL                     = 16p,Helvetica,black
FONT_LOGO                      = 8p,Helvetica,black
FONT_TAG                       = 20p,Helvetica,black
FONT_TITLE                     = 24p,Helvetica,black

下图展示了 GMT 绘图时底图中各个元素的英文名称以及本手册中对应的中文名称。建议读者记住底图各个元素的中英文名称以方便查找和修改。

../../_images/tutor_conf.png

配置参数的设置方法

配置参数的设置有两种方法:一种为全局设置,对设置以后的所有命令都有效。另一种为临时设置,只对该条命令有效。下面以配置参数 FONT_TITLE 为例,介绍全局和临时设置标题(TITLE)的字体(FONT)的方法。

全局设置需要使用 gmtset 模块。用 gmtset 模块做的设置对之后的所有命令都有效。在下面的例子中,使用 gmtset 模块全局设置了标题的字体为 12p,Times-Bold,red,所以两个标题的字体都发生了相应的改变。

gmt begin conf1
    gmt set FONT_TITLE 12p,Times-Bold,red # 全局设置标题的字体
    gmt basemap -JX5c -R0/1/0/1 -Bwsen+t'Title One'
    gmt basemap -JX5c -R0/1/0/1 -Bwsen+t'Title Two' -X6c
gmt end show
../../_images/069359881aa5dc6e2329982d9b444353.png

标题字体的全局设置

临时设置则是通过为命令添加选项 --KEY=value 的形式实现的,其中 KEY 是配置参数的名称,value 是配置参数的值。在下面的例子中,在绘制左边的底图时使用了选项 --FONT_TITLE=12p,Times-Bold,red,所以该底图的标题的字体是红色的。由于临时设置仅对当前命令有效,其不会影响到接下来的其它命令。因而右边的底图的标题属性依然是 FONT_TITLE 的默认值。

gmt begin conf2
    gmt basemap -JX5c -R0/1/0/1 -Bwsen+t'Title One' --FONT_TITLE=12p,Times-Bold,red
    gmt basemap -JX5c -R0/1/0/1 -Bwsen+t'Title Two' -X6c
gmt end show
../../_images/748e10ebe7ed7b5c3c3ecb7fe0757100.png

标题字体的临时设置