3.2 绘制第一张图

3.2.1 GMT绘图脚本模板

GMT在绘图时,总是以 begin 开始,并以 end 结束。所有的绘图命令都放在 beginend 之间。

注解

GMT老用户可能会对此比较陌生。

GMT自6.0.0版本开始,引入了一种全新的绘图命令执行模式,称之为现代模式。GMT5及之前的命令风格称之为经典模式。GMT6既支持经典模式也支持现代模式。现代模式与经典模式可以完成相同的绘图功能,但现代模式大大简化了绘图代码,并极大避免了用户最容易出错的地方,因而推荐用户使用现代模式而非经典模式。

本手册将只使用现代模式,而不介绍经典模式。GMT新用户只需要按照本手册直接学习现代模式即可;对于GMT老用户,建议阅读 现代模式与经典模式的差异 并开始使用现代模式进行绘图。

一个最最基本的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 中指定同时生成 PNG 和 PDF 格式的图片;在 gmt end 后面都没有加上 show

用户在阅读本手册时,建议只指定生成PDF格式的图片,且总是在 gmt end 后加上 show 以便于在生成图片后自动预览图片效果。

3.2.2 绘制第一张图

在GMT绘图脚本模板的基础上,向 beginend 语句中间加入正确的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 coast 这一行命令的含义?没关系,稍后会详细介绍。

Source Code

../../_images/first-plot-gmtplot-0.png

使用GMT绘制的第一张图

3.2.3 GMT命令格式

一个GMT命令通常由 gmt + 模块名 + 选项 + 参数 构成。比如上面的例子中:

gmt coast -Rg -JH15c -Gpurple -Baf -B+t"My First Plot"
  • 所有的GMT命令都需要以 gmt 开头
  • coast 是模块名,这个模块可以用于绘制海岸线
  • -R-J-G-B等以 - 开头的是模块的选项
  • -Bafaf-B 选项的参数
  • -B+t"My First Plot"+t-B 的子选项,"My First Plot" 则是子选项 +t 的参数

关于GMT命令的几点说明:

  • 若模块名以 gmt 开头,则模块名中的 gmt 可省略。比如 gmt gmtset xxx xxx 可简写为 gmt set xxx xxx
  • 模块名、选项等均区分大小写
  • 选项以 - 开头,后接单个字符表示某个选项,字符后接选项的参数以及子选项
  • 子选项以 + 开头,后接单个字符以及子选项的参数
  • 不以 - 开头的参数,通常都会被当做文件,GMT会尝试去读取
  • 各选项间以空格分隔,选项内部不能有空格。选项内部的字符串中若存在空格,可以用单引号或双引号括起来