本文介绍 GMT 的 - B 选项的两种稍特殊的用法,以实现只绘制边框和只绘制网格线的目的。
两点说明:
- 示例采用 GMT5 语法,但方法对于 GMT4 也同样适用;
- 想不起来当初为什么会有只绘制网格线的需求了,所以这里只写如何实现,而不说为什么会有如此奇怪的需求。
绘制边框和网格线
使用下面的命令,会得到一个含有边框、标注、刻度和网格线的图:
gmt psbasemap -R0/10/0/4 -JX10c/4c -Ba1f1g1 > test.ps
效果如下:
GMT 默认绘制四条边,即虽然命令里没有 -BWSEN
,但实际上可以认为是有的,所以上面绘制出来的图有四个边框。
只绘制边框
-BWSEN
表示要绘制四条边, -B0
设置了四条边的标注、刻度和网格线的间距都是零,即可认为是不绘制标注、刻度和网格线:
gmt psbasemap -R0/10/0/4 -JX10c/4c -B0 -BWSEN > test.ps
效果图
只绘制网格线
想要只绘制网格线,即:
- 不绘制标注:用
-Ba0
,或不指定 a 的间隔,或用-Bwsen
- 不绘制刻度:用
-Bf0
,或不指定 f 的间隔; - 不绘制边框:这是要解决的问题;
想要不绘制边框,关键在于要使用某个选项压制 GMT 默认的 -BWSEN
选项,这里使用 -BZ
选项,即只绘制 Z 轴,而对于二维图来说没有 Z 轴,所以使用 -BZ
可以覆盖 GMT 默认的 -BWSEN
:
gmt psbasemap -R0/10/0/10 -JX10c/10c -Bg1 -BZ > test.ps
效果图:
解决这个问题还有另外一个办法,即设置 MAP_FRAME_WIDTH
与 MAP_GRID_PEN_PRIMARY
为同样的粗细。