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 模块绘制多样的符号。
符号一览
plot 模块绘制符号需要使用 -S 选项。-S 选项后面紧跟着符号类型代码,以及符号大小。GMT 中常见的十几种简单符号及其对应的符号类型代码如下图所示。比如 c 代表圆(circle),t 代表三角形(triangle)。
绘制简单符号
以绘制圆圈为例,通过查询文档或者看上图可知,圆圈对应的符号类型代码为 c。 -Sc0.5c 则表示绘制直径为 0.5 厘米的圆圈。为了绘制圆圈,我们需要给定圆圈的位置,因而输入数据中需要提供圆圈的 X 和 Y 坐标。
下面的示例中在 (2,3)、(5,6)、(8,2) 三个点绘制了三个直径为 0.5 厘米的圆圈。
gmt begin symbols gmt plot -R0/10/0/10 -JX10c/10c -Baf -Sc0.5c << EOF 2 3 5 6 8 2 EOF gmt end show
与绘制线段和多边形类似,我们可以使用 -W 选项控制符号轮廓的画笔属性,使用 -G 选项为符号设置填充色。下面的命令就绘制了三个黑边红色圆圈。
gmt begin symbols gmt plot -R0/10/0/10 -JX10c/10c -Baf -Sc0.5c -W1p,black -Gred << EOF 2 3 5 6 8 2 EOF gmt end show
若想要绘制其它符号,则只需要使用对应的符号类型代码即可。例如,将 -Sc0.5c 改成 -St0.5c 则会绘制三角形。
当然,某些符号类型可能需要额外的输入数据。比如 -Sr 表示绘制长方形,此时输入数据中除了需要长方形的 X 和 Y 坐标之外,还需要长方形的宽和高,因而输入数据需要四列。对于这些输入数据稍复杂的符号,可以阅读文档以了解其输入数据的格式。
大小变化的符号
若想要绘制大小变化的符号,则需要在输入数据中额外加上一列以控制每个符号的大小,同时,在 -S 选项中则不再需要指定符号大小。
下面的示例中,-Sc 中没有指定圆圈大小,此时输入数据的第三列控制圆圈大小。由此,我们即得到了大小变化的符号。
gmt begin symbols gmt plot -R0/10/0/10 -JX10c/10c -Baf -Sc -W1p,black -Gred << EOF 2 3 0.3 5 6 0.8 8 2 0.5 EOF gmt end show
颜色变化的符号
前面提到,使用 -G 选项可以为符号填充颜色,但其只能同时为所有符号指定单一的颜色。如果想要让符号的颜色根据某个数值的不同而使用不同的颜色,则需要使用 -C 选项。 -C 选项表示符号的填充色由某个数值以及 CPT 颜色表所控制。CPT 颜色表给出了数值与颜色之间的对应关系。因而对于任意一个符号,我们都可以给其一个数值,GMT 会根据该数值从 CPT 颜色表中找到对应的颜色作为该符号的填充色。因而,在输入数据中,我们需要在 X 和 Y 坐标的基础上额外加一列 Z 值,用于控制符号的填充色。
下面的示例中,我们首先使用 makecpt 模块,以 GMT 内置 CPT 颜色表 hot 为基础,生成了一个新的 CPT 颜色表。关于 CPT 颜色表的具体细节在后面会介绍到。此处,读者只需要知道,我们制作了一个 CPT 文件供后面的命令使用。该 CPT 颜色表为 0 到 3 之内的每个数值都对应了一个颜色。
同时,对于输入数据,我们额外增加一列(通常称这一列为 Z 值),该列的值决定了符号的填充色。
gmt begin symbols gmt makecpt -Chot -T0/3/1 gmt plot -R0/10/0/10 -JX10c/10c -Baf -Sc0.5c -W1p,black -C << EOF 2 3 0 5 6 1 8 2 2 EOF gmt end show
绘制不同的符号
前面说到,-S 选项中指定不同的符号类型代码则代表绘制不同的符号,但每次只能指定一种符号类型代码。如果想要不同的数据使用不同的符号绘制,则可以只指定符号大小而不指定符号类型代码,并在输入数据的最后一列指定符号类型代码。
下面的示例中,我们使用 -S0.5c 指定了符号的大小,但是没有指定符号类型。输入数据的最后一列中 c、t和 i 则分别为三个数据指定了各自的符号类型。
gmt begin symbols gmt basemap -R0/10/0/10 -JX10c/10c -Baf gmt plot -S0.5c -W1p,black -Gred << EOF 2 3 c 5 6 t 8 2 i EOF gmt end show
大小、颜色和符号类型都变化的符号
前面介绍了如何绘制大小变化或颜色变化或符号类型变化的符号。那么如何实现颜色、大小以及符号三者都变化的符号呢?可以使用 -S 但不指定符号类型以及符号大小,同时使用 -C 选项。
关键问题在于,此时的数据数据格式是怎样的。根据 GMT 的规定,此时输入数据的格式为:
X Y Z size symbol
即第三列控制符号填充色,第四列为符号大小,最后一列为符号类型代码。
gmt begin symbols gmt makecpt -Chot -T0/3/1 gmt plot -R0/10/0/10 -JX10c/10c -Baf -S -W1p,black -C << EOF 2 3 0 0.3 c 5 6 1 0.8 t 8 2 2 0.5 i EOF gmt end show
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论