GMT的plot模块可以绘制线段和多边形
绘制一条线段
要绘制线段,就必须提供线段上数据点的X坐标和Y坐标。以下面的数据为例,这个数据中包含了三个坐标点(2,2)、(8,2) 和(5,7),首先使用cat命令将数据写入到文件points.dat中,然后使用basemap模块绘制一张底图,并使用plot模块绘制输入文件points.dat中的数据。代码如下
cat > points.dat << EOF
2 2
8 2
5 7
EOF
gmt begin simpleline1 png,pdf
gmt basemap -JX10c -R0/10/0/10 -Baf
gmt plot points.dat
gmt end show
可以使用plot模块的-W选项设置画笔属性,画笔属性包括三个部分:线宽、颜色以及线型,三者之间用逗号隔开。
gmt begin simpleline2 png,pdf
gmt basemap -JX10c -R0/10/0/10 -Baf
gmt plot points.dat -W2p,red,-
gmt end show
-W2p,red,-选项,设置了画笔属性为2p宽的红色虚线。几种常见的线型包括-、.、.-和-.。
绘制一个多边形
使用plot模块时,可以使用-L选项将线段的首尾连接起来,构成了一个闭合多边形。
gmt begin polygon1 png,pdf
gmt basemap -JX10c -R0/10/0/10 -Baf
gmt plot points.dat -W4p,lightblue -L
gmt end show
还可以使用-G 选项为闭合多边形填充颜色。
gmt begin polygon2 png,pdf
gmt basemap -JX10c -R0/10/0/10 -Baf
gmt plot points.dat -W4p,lightblue -Glightred -L
gmt end show
如果只想要填充颜色而不绘制轮廓,只需要使用-G而不使用-W即可。
gmt begin polygon3 png,pdf
gmt basemap -JX10c -R0/10/0/10 -Baf
gmt plot points.dat -Glightred -L
gmt end show
绘制多条线段
可以通过多次调用plot模块来绘制多条线段。但若线段太多这样就太麻烦,此时可以将所有线段的数据点都保存到一个输入文件中,例如:
>
1 2
4 2
4 8
>
9 2
6 2
6 8
每个线段都包含了若干个数据点,在每一个数据点之前有一个>用于标记新的一段数据的开始,这种数据称之为多段数据。
gmt begin multilines1 png,pdf
gmt basemap -JX10c -R0/10/0/10 -Baf
gmt plot lines.dat -W1p,red
gmt end show
绘制多个多边形
使用相同数据绘制多边形
gmt begin multipolygons1 png,pdf
gmt basemap -JX10c -R0/10/0/10 -Baf
gmt plot lines.dat -W1p,red -L -Glightred
gmt end
大圆弧路径
在笛卡尔坐标系下,绘制线段时,任意两点之间会以直线方式连接;而在地理投影下,任意两点之间则使用大圆弧路径方法会连接。如果想要在地理投影下也是要直线连接两点,则需要使用-A选项设置画笔属性。
cat > twopoints.dat << EOF
115 30
250 30
EOF
gmt begin twopoints1 png,pdf
gmt coast -JH180/12c -Rg -B0 -W0.5p -A10000
gmt plot twopoints.dat -W2p,red
gmt plot twopoints.dat -W2p,blue -A
gmt end