绘制颜色渐变的线段
- 示例贡献者:
陈箫翰
绘制颜色渐变的线段,需要使用 gmt convert
进行数据处理,之后再使用 gmt plot -Sv+s -W+cl -C
绘图。
假设有一个飞机飞行跟踪数据,格式如下:
# 经度 纬度 高度
10.016 49.5493 18825
10.0032 49.5554 18700
10.0032 49.5554 18575
9.98304 49.5649 18531
9.97812 49.5673 18425
...
示例数据下载: data.txt
我们首先使用 gmt convert
命令将其变换为矢量格式:
gmt convert data.txt -Fv -o0:4
选项 -Fv
将原始的三列数据变换为向量起点终点格式:
# 原始数据的xyz值 原始数据里下一个点的xyz值
10.016 49.5493 18825 10.0032 49.5554 18700
10.0032 49.5554 18700 10.0032 49.5554 18575
10.0032 49.5554 18575 9.98304 49.5649 18531
...
我们只需要前5列数据进行绘图,选项 -o0:4
即为只保留前5列输出:
# 原始数据的xyz值 原始数据里下一个点的xy值
10.016 49.5493 18825 10.0032 49.5554
10.0032 49.5554 18700 10.0032 49.5554
10.0032 49.5554 18575 9.98304 49.5649
...
经过处理,这样格式的数据就可以使用 gmt plot -Sv+s
,将每一行的两个点连接起来绘制出线段。
而 -W+cl
选项则利用第三列的z值,将每一小段的颜色由CPT文件控制。
示例代码如下:
gmt begin track_sample
# 绘制底图
gmt basemap -R7.5/10.5/49/50.5 -JM10c -Baf
# 将原始数据处理为需要的格式
gmt convert data.txt -Fv -o0:4 > trackv.txt
# 根据飞行的高度范围生成cpt
gmt makecpt -T0/20000/1 -Z -Cseis
# 根据飞行高度,绘制颜色渐变的线段
gmt plot trackv.txt -Sv1p+s -W2p+cl -C
rm trackv.txt
gmt end show
参考链接
https://forum.generic-mapping-tools.org/t/how-to-color-line-segments-according-z-value/2832/7