GMT 入门
GMT 实例
GMT 进阶
- 基础知识
- 表数据
- 网格文件
- 颜色表 CPT
- 标准选项
- 地图投影
- -JX: Linear, logarithmic, power, and time
- -JP: Polar/Cylindrical
- -JA: Lambert azimuthal equal area
- -JB: Albers conic equal area
- -JC: Cassini cylindrical
- -JCyl_stere: Cylindrical stereographic
- -JD: Equidistant conic
- -JE: Azimuthal equidistant
- -JF: Azimuthal gnomonic
- -JG: Azimuthal orthographic/General perspective
- -JH: Hammer equal area
- -JI: Sinusoidal equal area
- -JJ: Miller cylindrical
- -JK: Eckert equal area
- -JL: Lambert conic conformal
- -JM: Mercator cylindrical
- -JN: Robinson
- -JO: Oblique Mercator
- -JPoly: (American) polyconic
- -JQ: Equidistant cylindrical
- -JR: Winkel Tripel
- -JS: General stereographic
- -JT: Transverse Mercator
- -JU: Universal Transverse Mercator (UTM)
- -JV: Van der Grinten
- -JW: Mollweide
- -JY: Cylindrical equal area
- 配置参数
- 地学数据集
- 中国地理空间数据集
- 中文支持
- API
- 模块手册
- basemap
- begin
- clear
- clip
- coast
- colorbar
- contour
- coupe
- end
- figure
- filter1d
- fitcircle
- gmt
- gmt-config
- gmtbinstats
- gmtconnect
- gmtdefaults
- gmtget
- gmtinfo
- gmtlogo
- gmtmath
- gmtselect
- gmtset
- gmtsimplify
- gmtspatial
- gmtsplit
- gmtvector
- gmtwhich
- grd2cpt
- grd2xyz
- grdblend
- grdclip
- grdcontour
- grdconvert
- grdcut
- grdedit
- grdfill
- grdimage
- grdinfo
- grdlandmask
- grdmask
- grdmath
- grdpaste
- grdproject
- grdsample
- grdtrack
- grdtrend
- grdvector
- grdview
- grdvolume
- gshhg
- histogram
- image
- img2google
- img2grd
- kml2gmt
- makecpt
- mapproject
- mask
- meca
- nearneighbor
- plot
- polar
- project
- psconvert
- rose
- sac
- sample1d
- solar
- spectrum1d
- sph2grd
- sphdistance
- sphinterpolate
- sphtriangulate
- surface
- ternary
- text
- triangiulate
- velo
- wiggle
- x2sys_binlist
- x2sys_cross
- x2sys_datalist
- x2sys_get
- x2sys_init
- x2sys_list
- x2sys_merge
- x2sys_put
- x2sys_report
- x2sys_solve
- xyz2grd
- mgd77manage
- mgd77convert
- mgd77header
- mgd77info
- mgd77list
- mgd77magref
- mgd77path
- mgd77sniffer
- mgd77track
- legend
- docs
- subplot
- inset
附录
其他
绘制线段和多边形
绘制线条和多边形是日常绘图最常见的需求之一,也是所有绘图软件必备的功能。这一节我们将学习如何使用 GMT 的 plot 模块绘制线段和多边形。
绘制一条线段
要绘制一条线段,就必须提供线段上数据点的信息,即数据的 X 坐标和 Y 坐标。 plot 会自动将输入数据中相邻的两点连接起来。
以下面的数据为例,这个数据中包含了三个坐标点 (2,2)、(8,2) 和 (5,7):
2 2 8 2 5 7
下面的例子中,我们首先使用 UNIX 下的 cat
命令将数据写入到文件 points.dat
中,然后使用 basemap 模块绘制了一张底图,并使用 plot 模块绘制输入文件 points.dat
中的数据。
警告
下面的几行代码的作用是将两个 EOF 中间的三行数据保存到文件 points.dat
中:
cat > points.dat << EOF 2 2 8 2 5 7 EOF
需要注意:Windows Batch 不支持 EOF 语法! 因而 Batch 用户需要使用:
echo 2 2 > points.dat echo 8 2 >> points.dat echo 5 7 >> points.dat
将数据写到文件 points.dat
。其它示例也有相同的问题,Batch 用户自行修改,不再专门解释。
图中,plot 模块在绘图时自动将三个点连接起来,绘制出了一条线段。
cat > points.dat << EOF 2 2 8 2 5 7 EOF gmt begin SimpleLine gmt basemap -JX10c -R0/10/0/10 -Baf gmt plot points.dat gmt end show
想要修改线段的粗细或颜色?很简单,可以使用 plot 模块的 -W 选项设置画笔属性。画笔属性包括三个部分:线宽、颜色以及线型,三者之间用逗号隔开。
下面的脚本中,我们给 plot 模块添加了 -W2p,red,- 选项,即设置了画笔属性为 2p 宽的红色虚线。p 是 GMT 中的一个长度单位。
cat > points.dat << EOF 2 2 8 2 5 7 EOF gmt begin SimpleLine gmt basemap -JX10c -R0/10/0/10 -Baf gmt plot points.dat -W2p,red,- gmt end show
你可以尝试修改线宽、颜色和线型,并查看绘图效果。几种常见的线型包括 -
、.
、.-
和 -.
。
绘制一个多边形
plot 在绘制线段时默认是不将线段首尾连接起来的,可以使用 -L 选项将线段的首尾连接起来,构成了一个闭合多边形。
cat > points.dat << EOF 2 2 8 2 5 7 EOF gmt begin polygon gmt basemap -JX10c -R0/10/0/10 -Baf gmt plot points.dat -W4p,lightblue -L gmt end show
我们还可以使用 -G 选项为闭合多边形填充颜色。
cat > points.dat << EOF 2 2 8 2 5 7 EOF gmt begin polygon gmt basemap -JX10c -R0/10/0/10 -Baf gmt plot points.dat -W4p,lightblue -Glightred -L gmt end show
这样我们就得到了一个内部为浅红色、轮廓为浅蓝色的多边形了。如果只想要填充颜色而不绘制轮廓,只需要使用 -G 而不使用 -W 即可。
cat > points.dat << EOF 2 2 8 2 5 7 EOF gmt begin polygon gmt basemap -JX10c -R0/10/0/10 -Baf gmt plot points.dat -Glightred -L gmt end show
绘制多条线段
学会了如何绘制一条线段,下面介绍如何一次性绘制很多条线段。可以将所有线段的数据点都保存到一个输入文件中,例如:
> 1 2 4 2 4 8 > 9 2 6 2 6 8
每个线段都包含了若干个数据点,在第一个数据点之前有一个 > 用于标记新的一段数据的开始。这种数据称之为多段数据。
与绘制一条线段的命令完全相同,由于输入数据中有两段数据,plot 模块为我们绘制出了两条线段。同样的,两条线段均为线宽为 1p 的红色实线。
cat > lines.dat << EOF > 1 2 4 2 4 8 > 9 2 6 2 6 8 EOF gmt begin MultiLines gmt basemap -JX10c -R0/10/0/10 -Baf gmt plot lines.dat -W1p,red gmt end show
绘制多个多边形
使用相同的输入数据,通过加上 -L 可以构成闭合多边形,加上 -G 为多边形设置填充色。
cat > lines.dat << EOF > 1 2 4 2 4 8 > 9 2 6 2 6 8 EOF gmt begin MultiPolygons gmt basemap -JX10c -R0/10/0/10 -Baf gmt plot lines.dat -W1p,red -L -Glightred gmt end show
大圆弧路径
在笛卡尔坐标系下,绘制线段时,任意两点之间会以直线方式连接;而在地理投影下,任意两点之间则使用大圆弧路径方法会连接。如果想要在地理投影下也是要直线连接两点,则需要使用 -A 选项。
下面的命令中,我们首先使用 coast 绘制了一张全球地图,接着使用 plot 模块绘制了地球上两点之间的连线(红色,以大圆弧路径方式连接),然后,我们加上了 -A 选项再次绘制了这两点之间的连线(蓝色,以直线方式连接)。从中可以看到 -A 选项的效果。
cat > twopoints.dat << EOF 115 30 250 30 EOF gmt begin map gmt coast -JH180/12c -Rg -B0 -W0.5p -A10000 gmt plot twopoints.dat -W2p,red gmt plot twopoints.dat -W2p,blue -A gmt end show
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论