✍️ 田冬冬 , 朱邓达 , 周茂 , 邓山泉 , 陈箫翰 • 📅 2025-12-30

# colorbar

官方文档:

  colorbar

简介:

  在地图上绘制灰色或彩色色条

GMT 在使用 `colorbar` 绘制色条时，本质上是绘制了一个在x或y方向被“拍扁”的新的笛卡尔坐标系底图。 如果想要修改色条刻度的字体大小、刻度线粗细、边框粗细等属性，应当把色条看成一个新的笛卡尔坐标底图， 使用 --PAR=value 语法临时修改GMT参数的值。参数列表见 配置参数。

## 语法

gmt colorbar [ `-B`[p|s]parameters ] [ `-C` cpt ] [ `-D` refpoint ] [ `-F` panel ] [ `-G` zlo/zhi ] [ `-I`[max_intens|low_i/high_i] ] [ `-J` parameters ] [ `-Jz|Z` parameters ] [ `-L`[i][gap] ] [ `-M` ] [ `-N`[p|dpi ]] [ `-Q` ] [ `-R` region ] [ `-S` ] [ `-U`[stamp] ] [ `-V`[level] ] [ `-W` scale ] [ `-X`[a|c|f|r][xshift] ] [ `-Y`[a|c|f|r][yshift] ] [ `-Z` zfile ] [ `-p` flags ] [ `-t` transp ] [ --PAR=value ]

## 可选选项

-B

-B[p|s]parameters

  设置colorbar的标注、刻度和网格线间隔。

  在不使用 `-B` 选项或不指定标注间隔时，默认会根据CPT文件中每一行的内容 对colorbar进行标注，具体见 颜色表 CPT。`-B` 选项的具体说明 见 -B 选项。

  默认情况下，对于水平colorbar而言，X轴的标签会放在colorbar的下边，Y轴标签放在 colorbar的右边；对于垂直colorbar而言，X轴的标签放在colorbar的右边，Y轴标签 放在colorbar的上边。除非在 `-D` 选项中使用了 +m 子选项。

-C

-C[cpt]

  要绘制的CPT文件。

  若CPT中Z值范围单位为米，而实际绘图时想使用其它单位，则可在文件名后加上 +U unit。 若CPT中Z值范围单位不为米，而实际绘图中想使用米为单位，则可在文件名后加上 +u unit。

  对于现代模式，若未指定 cpt 或者未使用 `-C` 选项，则使用当前CPT。 经典模式下，若未指定 `-C` 则从标准输入中读入CPT。

-D

-D[g|j|J|n|x]refpoint[+w length[/width]][+e[b|f][length]][+h|v][+j justify][+m[a|c|l|u]][+n[txt]][+o dx[/dy]]

  指定色标的尺寸和位置。

  简单介绍各子选项的含义，详情见 修饰物

  - g|j|J|n|x]refpoint指定地图上的参考点

    - g lon/lat 指定数据坐标为参考点

    - j code 或者 J code 通过 2 个字母的对齐方式码指定锚点作为参考点

    - n xn/yn 指定归一化坐标系（即 0-1）为参考点

    - x x/y 指定绘图坐标 为参考点， 追加 cm, inch, 或者 point 用来指定单位

  - +j justify 指定色标上的锚点，默认锚点是 BL

  - +o dx/dy 在参考点的基础上设置色标的额外偏移量

  - +w length[/width] 指定色标的长度和宽度。若未指定宽度，则默认为长度 的4%；若长度为负值则会反转色标。

  - +h 绘制水平色标

  - +v 绘制垂直色标

  - +e[b|f][length] 在CPT中为前景色和背景色加一个三角形。 +ef 表示只加前景色三角形， +eb 表示只加背景色三角形 length 是三角的高度，默认为色标宽度的一半。

  - +m[a|c|l|u] 将标注、标签和单位放在色标的另一边。 a 代表标注， l 代表标签， u 代表单位。 c 表示将标签以单列字符垂直打印。

  - +n text 在色标开始处绘制一个矩形，并用NaN的颜色填充

  几种常用的放置色标的方式：

  - 放在左边: -DjML+w2c/0.5c+o-1c/0c+m

  - 放在右边: -DjMR+w2c/0.5c+o-1c/0c

  - 放在上方: -DjTC+w2c/0.5c+o0c/-1c+m

  - 放在下方: -DjBC+w2c/0.5c+o0c/-1c+m

  - 放在左上角: -DjTL+w2c/0.5c+o-1c/0c+m

  - 放在左下角: -DjBL+w2c/0.5c+o-1c/0c+m

  - 放在右上角: -DjTR+w2c/0.5c+o-1c/0c

  - 放在右下角: -DjBR+w2c/0.5c+o-1c/0c

-F

-F[+c clearances][+g fill][+i[[gap/]pen]][+p[pen]][+r[radius]][+s[[dx/dy/][shade]]]

  控制色标后的背景边框

  若只使用 `-F` 而不使用其它子选项，则会在色标周围绘制矩形边框。 下面简单介绍各子选项，详细用法见 修饰物

  - +g fill 指定面板填充颜色 [默认不填充]

  - +p pen 绘制面板边框。pen 为边框的画笔属性，若不指定 pen， 则默认使用 MAP_DEFAULT_PEN

  - +r[radius] 绘制圆角边框，radius 为圆角的半径

  - +i[[gap/]pen] 在边框内部绘制一个内边框，gap 为内外边框空白距离 [默认为 2p]， pen 为内边框的画笔属性 [默认使用 MAP_DEFAULT_PEN]

  - +c clearance 设置修饰物与面板之间的空白距离。 默认情况下面板的大小由修饰物的大小决定，使用该子选项可以为面板增加额外的尺寸。 clearance 的具体设置包括下面 3 种情况：

    - gap 为四个方向增加相同的空白距离

    - xgap/ygap 分别为 X 方向和 Y 方向指定不同的空白距离

    - lgap/rgap/bgap/tgap 分别为四个方向指定不同的空白距离

  - +s[[dx/dy/][shade]] 设置面板背景阴影。dx/dy 为阴影区相对于面板的偏移量， shade 为阴影区颜色 [默认为 4p/-4p/gray50]

-G

-G zlow/zhigh

  对CPT文件做截断，即只绘制 zlow 到 zhigh 之间的部分。 若其中某个值等于NaN，则不对CPT的那一端做处理。

-I

-I[max_intens|low_i/high_i]

  为色标加上光照效果

  - `-I` max_intens 设置光照强度为 [-max_intens, +max_intens]，默认值为[-1,+1]

  - `-I` low_i/high_i 指定非对称的光照强度范围

-J

-J projection

  设置地图投影方式。 (参数详细介绍)

-Jz|Z

-J z|Z parameters

  绘制三维图时，设置垂直方向 Z 轴的线性投影尺度。 参数用法与 -Jx|X 相同。

-L

-L[i][gap]

  生成等大小的颜色矩形。

  默认情况下，会根据CPT文件中Z值的范围决定颜色矩形的大小。若使用该选项，则 会忽略 `-B` 选项设置的间隔。若指定了 gap 且CPT文件是离散的，则使用 每个矩形的Z值下边界作为标注且将标注放在矩形的正中间。 若使用了 i 则标注每个间隔范围。若使用了 `-I` 选项，则每个矩形有自己的 颜色以及自己的光照强度。

-M

-M

  使用YIQ变换将色标变成单调灰度色标

-N

-N[p|dpi]

  控制色标的图形表示方式

  - -Np 用颜色矩形来表示（比如离散的颜色）

  - `-N` 用图形表示（比如连续的颜色），可以加上 dpi 指定绘制色标时的等效DPI，默认值为600

-Q

-Q

  使用对数坐标，刻度表示为10的次幂

  CPT文件中所有的Z值都会被转换成 \(p = \log10(z)\)，其中整数的p会以10^p的格式标注。

-R

-R west/east/south/north[/zmin/zmax][+r][+u unit]

  指定数据范围。对于三维透视图（-p 选项） ，可以加上 /zmin/zmax 指定Z轴的范围。 (参数详细介绍)

-S

-S

  去除不同色块之间的黑色网格线

-U

-U[label][+c][+j just][+o dx/dy]

  在图上绘制GMT时间戳logo。 (参数详细介绍)

-V

-V[level]

  设置 verbose 等级 [w]。 (参数详细介绍)

-W

-W scale

  将CPT文件中所有的Z值乘以比例因子 scale

-X

-Y

-X[a|c|f|r][xshift[u]]

-Y[a|c|f|r][yshift[u]]

  移动绘图原点。 (参数详细介绍)

-Z

-Z zfile

  zfile 文件用于指定每个颜色块的宽度。

  默认情况下，颜色块的宽度由颜色的Z值范围决定，比如Z=0-100对应的色块宽度是 Z=100-150的色块宽度的两倍。

-p

-p[x|y|z]azim[/elev[/zlevel]][+w lon0/lat0[/z0]][+v x0/y0]

  设置3D透视视角。 (参数详细介绍)

-t

-t[transp]

  设置图层透明度（百分比）。取值范围为0（不透明）到100（全透明）。 (参数详细介绍)

-^ 或 -

  显示简短的帮助信息，包括模块简介和基本语法信息（Windows下只能使用 -）

-+ 或 +

  显示帮助信息，包括模块简介、基本语法以及模块特有选项的说明

-? 或无参数

  显示完整的帮助信息，包括模块简介、基本语法以及所有选项的说明

--PAR=value

  临时修改GMT参数的值，可重复多次使用。参数列表见 配置参数

## MacOS Preview 警告

在 macOS 系统下，PDF 或 PostScript 文件中出现的低分辨率栅格图像在使用 Preview 应用程序查看时可能会显得模糊。 这是因为 Preview 会对非常粗糙（低像素密度）的图像进行重新采样，而不是保持其原样； 目前我们尚未找到一种简单的方法来关闭这一功能。这种现象在离散 CPT 的 colorbar （我们现在将此类 CPT 的默认设置设为 -Np） 以及使用 grdimage 或 grdview -Qi|c 绘制非常小的网格时最为明显。 然而，如果选择光栅格式（如 JPG 或 PNG）则不会出现这种模糊现象。 其他 PDF 查看器（例如 Adobe Acrobat）似乎没有受到类似的影响。

## 示例

    gmt begin map
    gmt makecpt -T-200/1000/100 -Crainbow
    gmt colorbar -C -Dx8c/1c+w12c/0.5c+jTC+h -Bxaf+l"topography" -By+lkm
    gmt end show

## 相关模块

makecpt, logo, grd2cpt, image, legend