任意线段集生成多边形_GMT学习笔记3-绘制线段和多边形

56b16a9ffab1f969f707fcf7220ad33e.png

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

65876568aa8e47a07d8edfb62b08694a.png

可以使用plot模块的-W选项设置画笔属性,画笔属性包括三个部分:线宽、颜色以及线型,三者之间用逗号隔开。

gmt begin simpleline2 png,pdf
    gmt basemap -JX10c -R0/10/0/10 -Baf
    gmt plot points.dat -W2p,red,-
gmt end show

260699f9252c87e30c3ca1b2b599847d.png

-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

28f82f836f930ec6f97f15d83a528c65.png

还可以使用-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

ffb411cf810155a81f73c4593197f78b.png

如果只想要填充颜色而不绘制轮廓,只需要使用-G而不使用-W即可。

gmt begin polygon3 png,pdf
    gmt basemap -JX10c -R0/10/0/10 -Baf
    gmt plot points.dat -Glightred -L
gmt end show

656617aae41ebae2b13b4c99031da1eb.png

绘制多条线段

可以通过多次调用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

2e9bf69cf8ef9077b87bcfdf8178721c.png

绘制多个多边形

使用相同数据绘制多边形

gmt begin multipolygons1 png,pdf
    gmt basemap -JX10c -R0/10/0/10 -Baf
    gmt plot lines.dat -W1p,red -L -Glightred
gmt end

863f030c3026fa549c1ddd93369adbfd.png

大圆弧路径

在笛卡尔坐标系下,绘制线段时,任意两点之间会以直线方式连接;而在地理投影下,任意两点之间则使用大圆弧路径方法会连接。如果想要在地理投影下也是要直线连接两点,则需要使用-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

796b384861a8f40ff20d712c18b8c2d7.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值