返回介绍

GMT 入门

GMT 实例

GMT 进阶

附录

其他

plot

发布于 2023-08-10 21:46:56 字数 7285 浏览 0 评论 0 收藏 0

官方文档

plot

简介

在图上绘制线段、多边形和符号

该命令既可以绘制线段和多边形(多边形是闭合的线段),也可以绘制符号。唯一的区别在于是否使用了

-A[m|p|x|y]

修改两点间的连接方式。

地理投影下,两点之间默认沿着大圆弧连接。

  1. -A :忽略当前的投影方式,直接用直线连接两点

  2. -Am :先沿着经线画,再沿着纬线画

  3. -Ap :先沿着纬线画,再沿着经线画

笛卡尔坐标下,两点之间默认用直线连接。

  1. -Ax 先沿着X轴画,再沿着Y轴画

  2. -Ay 先沿着Y轴画,再沿着X轴画

下图中,黑色曲线为默认情况;红线为使用 -A 的效果;蓝线为使用 -Ap 的效果;黄线为使用 -Am 的效果:

Source Code

http://www.wenjiangs.com/wp-content/uploads/2023/docimg24/590-4b2hckjkswn.png

plot -A选项示意图

使用 -S 选项,则表示要绘制符号。 -S 选项的基本语法是:

-S[<symbol>][<size>[<u>]]

其中 <symbol> 指定了符号类型, <size> 为符号的大小, <u><size> 的单位。

不同的符号类型,需要的输入数据格式也不同,但可以统一写成(用 ... 代表某符号特有的输入列):

X   Y   ...
-S-|+|a|c|d|g|h|i|n|s|t|x|y|p

绘制一些简单的符号。

这几个符号比较简单,输入数据中不需要额外的列:

  • -S- :短横线, <size> 是短横线的长度;

  • -S+ :加号, <size> 是加号的外接圆的直径;

  • -Sa :五角星(star), <size> 是外接圆直径;

  • -Sc :圆(circle), <size> 为圆的直径;

  • -Sd :菱形(diamond), <size> 为外接圆直径;

  • -Sg :八边形(octagon), <size> 为外接圆直径;

  • -Sh :六边形(hexagon), <size> 为外接圆直径;

  • -Si :倒三角(inverted triangle), <size> 为外接圆直径;

  • -Sn :五边形(pentagon), <size> 为外接圆直径;

  • -Sp :点,不需要指定 <size> ,点的大小始终为一个像素点;

  • -Ss :正方形(square), <size> 为外接圆直径;

  • -St :三角形(triangle), <size> 为外接圆直径;

  • -Sx :叉号(cross), <size> 为外接圆直径;

  • -Sy :短竖线, <size> 为短竖线的长度;

对于小写符号 acdghinst<size> 表示外接圆直径;对于大写符号 ACDGHINST<size> 表示符号的面积与直径为 <size> 的圆的面积相同。

下图给出了上面所给出的symbol所对应的符号:

Source Code

http://www.wenjiangs.com/wp-content/uploads/2023/docimg24/595-qweeostrnmh.png

plot -S选项示意图

-S 选项相对复杂,与不同的选项连用,或者后面接不同的参数,所需要的输入数据的格式也不同。不管是什么符号,至少都需要给定符号的位置,即X和Y是必须的:

X   Y

不同的符号,可能还需要额外的信息,统一写成(用 ... 代表某符号特有的输入列):

X   Y   ...

-S 指定了符号类型但未指定大小,即 -S<symbol> ,若该符号类型需要指定大小,则需要将符号大小放在输入数据的第三列,其他输入数据的列号延后,此时数据格式为:

X   Y   size    ...

若size<=0,则跳过该记录行。

-S 选项后未指定符号代码,则符号代码必须位于输入文件的最后一列

X   Y   ...   symbol

若使用了 -C-S 选项,则符号的填充色由数据的第三列决定,其他字段依次后移:

X   Y  [Z]   ...  symbol

因而总结一下输入数据的格式为:

x  y  [Z]  [size]  ...   [symbol]

其中 ... 为某些符号所要求的特殊的数据列, symbol 是未指定符号时必须的输入列, size 是未指定大小时的输入列。

制作和使用自定义符号

如果 GMT 内置的自定义符号无法满足用户的需求,用户可以根据 GMT 自定义符号文件 的格式要求自行制作自定义符号文件。

使用自定义符号时,GMT 会依次按照如下顺序去搜索自定义符号的定义文件 name.def

  1. 当前目录,即运行脚本所在目录

  2. ~/.gmt/custom 目录(Linux 和 macOS 用户)或 C:\Users\你的当前用户名\.gmt\custom 目录(Windows用户)

  3. $GMT_SHAREDIR/custom 目录

用户可以将自己制作的自定义符号复制到以上任一路径即可正常使用。建议放在 ~/.gmt/custom 目录(Linux 和 macOS 用户)或 C:\Users\你的当前用户名\.gmt\custom 目录(Windows 用户)下。

多段数据

对于多段数据而言,每段数据的头段记录中都可以包含一些选项,以使得不同段数据拥有不同的属性。头段记录中的选项会覆盖命令中选项的参数:

  • -Gfill :设置当前段数据的填充色

  • -G- :对当前数据段关闭填充

  • -G :恢复到默认填充色

  • -W<pen> :设置当前段数据的画笔属性

  • -W :恢复到默认画笔属性 MAP_DEFAULT_PEN

  • -W- :不绘制轮廓

  • -Z<zval> :从cpt文件中查找Z值<zval>所对应的颜色作为填充色

  • -ZNaN :从cpt文件中获取NaN颜色

详情及示例参见 数据段头记录中的额外属性

示例

最简单的命令,绘制线段或多边形,此时数据输入需要两列,即X和Y:

gmt plot -R0/10/0/10 -JX10c -B1 -png test << EOF
3 5
5 8
7 4
EOF

下面的脚本展示了 -F 选项的用法:

#!/usr/bin/env bash

# 此处定义了函数plotpts,用于绘制图中绿色和蓝色的圆圈,并加上文字
function plotpts
{
    # Plots the two data tables and places given text
    gmt plot -Sc0.2c -Ggreen -Wfaint t1.txt
    gmt plot -Sc0.2c -Gblue -Wfaint t2.txt
    echo $* | gmt text -F+cTL+jTL+f12p -Dj0.05i
}
# 生成测试用的第一个数据文件
cat << EOF > t1.txt
10 10
48 15
28 20
>
40 40
30  5
5  15
EOF
# 生成测试用的第二个数据文件
cat << EOF > t2.txt
7  20
29 11
8   4
EOF
# -Fcs: 默认的连接方式
gmt begin plot_-F
gmt basemap -R0/50/0/45 -Jx0.06i -Ba10 -BWSne
gmt plot -W1p t[12].txt
plotpts TWO DATA TABLES

# -Fra
gmt plot -W1p t[12].txt -Fra -X3.25i
plotpts DATASET ORIGIN

# -Frf
gmt plot -W1p t[12].txt -Frf -X-3.25i -Y3.15i
plotpts TABLE ORIGIN

# -Frs
gmt plot -W1p t[12].txt -Frs -X3.25i
plotpts SEGMENT ORIGIN

# -Fr10/35
gmt plot -W1p t[12].txt -Fr10/35 -X-3.25i -Y3.15i
plotpts FIXED ORIGIN
echo 10 35 | gmt plot -Sa0.4c -Gred -Wfaint

# -Fna
gmt plot -W1p t[12].txt -Fna -X3.25i
plotpts NETWORK

gmt end show
rm t[12].txt
http://www.wenjiangs.com/wp-content/uploads/2023/docimg24/601-2kqrbqwfjno.png

plot -F选项示意图

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文