命令初探
上一节我们使用 GMT 绘制了第一张图,但是没有对其中的细节做任何介绍。这一节我们将简单介绍一下 GMT 的命令。
GMT 绘图脚本模板
GMT 在绘图时,总是以 begin 开始,并以 end 结束。所有的绘图命令都放在 begin 与 end 之间,而非绘图命令可以放在任何地方。
注解
GMT 老用户可能会对此比较陌生。
GMT 自 6.0.0 版本开始,引入了一种全新的绘图命令执行模式,称之为现代模式。GMT5 及之前的命令风格称之为经典模式。GMT6 既支持经典模式也支持现代模式。现代模式与经典模式可以完成相同的绘图功能,但现代模式大大简化了绘图代码,并极大避免了用户最容易出错的地方,因而推荐用户使用现代模式而非经典模式。
本手册将只使用现代模式,而不介绍经典模式。GMT 新用户只需要按照本手册直接学习现代模式即可;对于 GMT 老用户,建议阅读 经典模式 → 现代模式 或者观看视频教程 GMT6 新特性,并开始使用现代模式进行绘图。
在前一节中我们使用 gmt --new-script
命令生成一个绘图模板。忽略掉绘图模板中的注释语句,一个最最基本的 GMT 绘图脚本的模板是:
gmt begin
#
# 其它命令,包括 GMT 绘图命令、数据处理命令以及其它 UNIX 命令
#
gmt end
你可以直接执行这个脚本,但是因为这里什么命令也没用,所以这个脚本不会生成任何图片。
绘图时我们通常需要指定图片文件名和图片格式,因而更实用的绘图脚本模板为:
gmt begin FigureName pdf
#
# 其它命令,包括 GMT 绘图命令、数据处理命令以及其它 UNIX 命令
#
gmt end show
FigureName 指定了要生成的图片文件名,你可以指定任意文件名,但最好避免在文件名中使用特殊符号和空格。若不给定文件名,则默认文件名为
gmtsession
紧跟在图片文件名后的 pdf 指定了要生成的图片格式(若不指定格式,则默认图片格式为 PDF)。GMT 支持多种图片格式,pdf、ps、eps、jpg、png、bmp 等等。若想要一次性生成多种格式的图片,则可以使用逗号将多种格式连接起来,如 pdf,png 会同时生成 PDF 和 PNG 格式的图片
gmt end 后面加上 show,则 GMT 会在绘图完成后,使用系统自带的阅读器软件自动打开生成的图片文件,供用户预览绘图效果
绘制第一张图
在 GMT 绘图脚本模板的基础上,向 begin 和 end 语句中间加入正确的 GMT 绘图命令,即可实现用 GMT 绘图。
下面的脚本使用 coast 绘制了一张全球地图。执行该脚本,会生成文件名为 GlobalMap
、格式为 PNG 和 PDF 的图片文件,并且 GMT 会在绘图结束后自动打开生成的图片文件。
gmt begin GlobalMap png,pdf
gmt coast -Rg -JH15c -Gpurple -Baf -B+t"My First Plot"
gmt end show

使用 GMT 绘制的第一张图
小技巧
不理解 gmt coast 这一行命令的含义?没关系,稍后会详细介绍。
小技巧
想了解 gmt coast 的具体用法?打开终端,敲入 gmt docs coast
,GMT 会自动帮你打开 coast 模块的说明文档。
GMT 命令格式
一个 GMT 命令通常由 gmt + 模块名 + 选项 + 参数 构成。比如上面的例子中:
gmt coast -Rg -JH15c -Gpurple -Baf -B+t"My First Plot"
所有的 GMT 命令都需要以 gmt 开头
coast 是模块名,这个模块可以用于绘制海岸线
-R、-J、-G、-B等以 - 开头的是模块的选项
-Baf 中 af 是 -B 选项的参数
-B+t“My First Plot” 中 +t 为 -B 的子选项,”My First Plot” 则是子选项 +t 的参数
关于 GMT 命令的几点说明:
若模块名以 gmt 开头,则模块名中的 gmt 可省略。比如 gmt gmtset xxx xxx 可简写为 gmt set xxx xxx
模块名、选项等均区分大小写
选项以 - 开头,后接单个字符表示某个选项,字符后接选项的参数以及子选项
子选项以 + 开头,后接单个字符以及子选项的参数
不以 - 开头的参数,通常都会被当做文件,GMT 会尝试去读取
各选项间以空格分隔,选项内部不能有空格。选项内部的字符串中若存在空格,在 Bash 下可以使用单引号或双引号括起来,而在 Windows 的 Batch 下则只能使用双引号。