绘制颜色渐变的线段

示例贡献者:

陈箫翰


绘制颜色渐变的线段,需要使用 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
../../_images/19cbf0e19e1dd4b7c54e27f69b44956a.png

绘制颜色渐变的线段

参考链接

https://forum.generic-mapping-tools.org/t/how-to-color-line-segments-according-z-value/2832/7