本笔记借鉴知乎网友的笔记,只供自己参考学习,无任何商用。
绘制全球地图
-J & -R选项的基本用法
-J 选项指定地图投影参数以及地图的尺寸。 -R 选项指定要绘制的区域范围(即经纬度范围)。 如运行以下代码可以绘制全球地图(无边框版)。
1 | gmt begin GlobalMap1pdf |
运行结果如下:
其中,-JH180/12c指定地图投影参数,H表示使用Hammer投影,地图中心位于经度 180° 处,地图宽度为12厘米(12c);-R0/360/-90/90 指定要绘制的区域范围,即经度0° 到360°,纬度-90° 到90°,四个数字之间用斜杠/分隔。
-B选项的基本用法
-B 选项可以为地理底图加上边框并绘制经纬线。运行以下代码,可绘制全球地图(有边框版)
1 | gmt begin GlobalMap2 pdf |
其中,-Rg与-R0/360/-90/90是完全等效的。由于绘制全球地图是很常见的需求,因而GMT 为其设计了一个更简单的写法。-Rg中g代表global;-Bg 选项中的-B用于给底图加上边框,其中的g则用于向底图中加入网格线(g代表grid)。
绘制区域地图
绘制区域地图与绘制全球地图没有本质区别,依然需要使用-J指定投影方式,使用-R指定绘图区域范围,使用-B指定底图边框。运行以下代码,可绘制新西兰地图
1 | gmt begin newzealand1 png //此处为输出格式,这里测试后都改为png格式,便于Latex文本加入。 |
其中,-JM12c指定了使用墨卡托投影(绘制区域地图最常用的投影方式),地图宽度为12厘米;-RNZ指定了绘图区域范围,此处NZ是新西兰的国家代码,GMT会自动根据国家代码提取该国家的区域范围并用于绘图;-Ba用于给底图添加边框。对于某些地图投影GMT默认使用图中所示的黑白相间的底图边框。a用于添加标注(annotation,即图中的经纬度数字)。如果对于根据国家代码自动确定的区域范围不太满意,也可以使用-R选项最原始的方式来指定区域范围。通过上面的图,我们大概知道了新西兰的经纬度范围。运行以下代码重新绘制新西兰地图
1 | gmt begin newzealandmap2 png |
此代码同样可以生成类似上图新西兰区域图
还可以对底图进行进一步的修改以使其更加美观
1 | gmt begin newzealandmap3 png |
其中,-Bxa4 表示设置X轴(x)的标注间隔为4度一个(a4),-Bya3表示设置y轴的标注间隔为3度一个(a3),-BWSen中WSEN分别是西南东北四个方向的英文单词首字母,用于控制四条边的属性。大写的WS表示给西边和南边添加标注,而小写的en则表示对于东边和北边只绘制边框但不显示标注,-BWSen+t”New Zealand”中+t用于给整张图添加标题(title)。由于标题New Zealand中含有空格,我们需要使用单引号或双引号将其括起来。
绘制坐标轴
绘制线性坐标
绘制线性坐标轴,需要使用-R指定坐标轴范围,使用-B绘制边框并指定边框和坐标轴属性,同时,还需要使用-JX指定线性坐标轴的宽度和高度。例如
1 | gmt begin linearxy png |
其中,-JX8c/5c表明线性坐标轴的宽度为8厘米,高度为5厘米,-R10/70/-4/8表明X轴范围为10到70,Y轴范围为-4到8,-Bxa10f5g10+l”X Label” 设置了X 轴的属性,a10f5g10 分别设置了标注(annotation)间隔为10,刻度(frame)间隔为5,网格线(grid )间隔为10;+l”X Label”则为X轴添加了标签;对于Y 轴同理.
绘制三维坐标
三维坐标轴只需要在二维坐标的基础上针对Z轴指定Z轴的范围、Z轴的高度以及三维视角即可。例如
1 | gmt begin 3dmap png |
其中,-R 选项中有6个数字,后面两个数字表示Z轴最小值和最大值,-JZ5c指定了Z轴的高度为5厘米,-Bzaf指定了 轴的标注和刻度属性,-BSEwnZ+b中Z+b表示绘制一条Z轴,并绘制出整个长方体的所有边,-p130/30则指定了看这个长方体的视角130 和30分别为三维视角的方位角和高度角,方位角的取值范围为0 到360 度,高度角的取值范围为0 到90 度。