绘制自定义符号

示例贡献者:

陈箫翰,赵志远


某些地学绘图中常用的符号(例如指北针符号) GMT 默认没有提供,如果需要绘制此类符号, 就需要读者 制作和使用自定义符号 ,编写自定义符号的配置文件,之后再使用 gmt plot -Sk 绘制。

以指北针符号为例,它的配置文件如下:

# N: 1 意思是本符号需要一个附加参数(经纬度坐标之后的参数)
# a 意思是该附加参数是地理方位角(从正北开始顺时针角度)
N: 1 a
# $1 代表第一个附加参数的值(本例中仅有一个),O 代表进行旋转
# $1 O 表示先顺时针旋转 $1 角度
$1 O
# 以下宏命令绘制指北针的黑色右半边
# 设置一个位于(0,0.5)的新绘图锚点(M),并设置填充色为黑色(-Gblack)
0 0.5 M -Gblack
# 从上一个点绘制一条线(D)到(0.25,-0.5)
0.25 -0.5 D
# 从上一个点绘制一条线(D)到(0,-0.3)
0 -0.3 D
# 以下宏命令绘制指北针的白色左半边
# 设置一个位于(0,-0.3)的新绘图锚点(M)
0 -0.3 M
# 从上一个点绘制一条线(D)到(-0.25,-0.5)
-0.25 -0.5 D
# 从上一个点绘制一条线(D)到(0,0.5)
0 0.5 D

将以上配置文件的内容保存为 compass.def 的文件,之后即可使用 gmt plot -Skcompass/符号大小 绘制。

示例代码如下:

gmt begin custom
    # 生成指北针符号自定义文件
    cat > compass.def << 'EOF'
N: 1 a
$1 O
0 0.5 M -Gblack
0.25 -0.5 D
0 -0.3 D
0 -0.3 M
-0.25 -0.5 D
0 0.5 D
EOF

    # 绘制底图
    gmt basemap -R-1/1/-1/1 -JM5c -Baf

    # 在(0,0)位置绘制大小为1c的compass符号,旋转角0度
    echo 0 0 0 | gmt plot -Skcompass/1c

gmt end show
../../_images/7adb3518e066c53838e13ab7c9582743.png

绘制自定义符号