cmocean 包¶
子模块¶
cmocean.cmocean 模块¶
cmocean.plots 模块¶
带色图的绘图。
-
cmocean.plots.
plot_gallery
(saveplot=False)¶ 制作色图和标签的绘图,类似于 matplotlib 图库中的效果。
参数 saveplot=False – 是否保存绘图。
-
cmocean.plots.
plot_lightness
(saveplot=False)¶ 同时绘制色图的亮度。
-
cmocean.plots.
quick_plot
(cmap, fname=None, fig=None, ax=None, N=10)¶ 显示色图的快速测试。
-
cmocean.plots.
test
(cmap, fig=None, ax=None)¶ 通过绘图测试色图。
参数 cmap – 一个色图实例。使用 cm.get_cmap(colormap) 获取命名色图。
-
cmocean.plots.
wrap_viscm
(cmap, dpi=100, saveplot=False)¶ 使用感知增量评估色图的优劣。
参数 - cmap – 色图实例。
- dpi=100 – 保存图像的 DPI。
- saveplot=False – 是否保存绘图。
cmocean.tools 模块¶
用色图绘制内容。
-
cmocean.tools.
cmap
(rgbin, N=256)¶ 输入 RGB 值数组以生成色图。
参数 - rgbin – 一个 [mx3] 数组,其中 m 是输入颜色三元组的数量,这些颜色三元组将在插值后生成返回的色图。也可以输入十六进制值,以带 # 的单引号 [mx1] 形式。
- N=10 – 要插值的级别数。
-
cmocean.tools.
crop
(cmapin, vmin, vmax, pivot, N=None, dmax=None)¶ 通过 vmin/vmax 值裁剪发散色图的末端或两端。
参数 - cmap – 一个色图对象,例如 cmocean.cm.matter。
- vmin/vmax – 在绘图中使用色图的 vmin/vmax 值。
- pivot – 在发散色图绘图中使用的中心点。
- N=None – 用户可以指定输出色图的行数。如果未指定,将使用输入色图的 N 值,并根据需要插值以填充行。
- dmax=None – dmax 是色图中要包含的最高值;绝对值大于 dmax 的值将从色图的两端移除。它应小于 abs(vmin) 和 abs(vmax),并且要使用此参数,abs(vmin) 和 abs(vmax) 应相等。
输出结果色图对象。
- 此函数可用于顺序色图和其他非发散色图
- 但通过 crop_by_percent() 使用起来更方便。
- 这对于使用 topo 色图绘制水深测量和地形数据应该很有用,
- 当最大水深值与最大地形值不同时。
- 示例用法
# 发散色图最小端裁剪示例 vmin = -2; vmax = 5; pivot = 0 newcmap = crop(cmocean.cm.curl, vmin, vmax, pivot) A = np.random.randint(vmin, vmax, (5,5)) plt.pcolormesh(A, vmin=vmin, vmax=vmax, cmap=newcmap) plt.colorbar()
# 发散色图最大端裁剪示例 vmin = -10; vmax = 8; pivot = 0 newcmap = crop(cmocean.cm.delta, vmin, vmax, pivot) A = np.random.randint(vmin, vmax, (5,5)) plt.pcolormesh(A, vmin=vmin, vmax=vmax, cmap=newcmap) plt.colorbar()
-
cmocean.tools.
crop_by_percent
(cmap, per, which='both', N=None)¶ 按百分比裁剪色图的末端或两端。
参数 - cmap – 一个色图对象,例如 cmocean.cm.matter。
- per – 要移除的色图百分比。如果 which==’both’,则从色图两端移除此百分比。如果 which==’min’ 或 which==’max’,则仅从色图指定的一端移除百分比。
- which='both' – 要裁剪色图的哪一端或哪几端。which=’both’ 从两端移除,which=’min’ 从底端移除,which=’max’ 从顶端移除。
- N=None – 用户可以指定输出色图的行数。如果未指定,将使用输入色图的 N 值,并根据需要插值以填充行。
输出结果色图对象。
- 这是 crop() 函数的一个封装,使其更易于用于
- 基于百分比的裁剪。
- 示例
# oxy 映射示例:裁剪掉顶部的 20% 黄色部分 # 与完整色图进行比较 vmin = 0; vmax = 10; pivot = 5 A = np.random.randint(vmin, vmax, (5,5)) fig, axes = plt.subplots(1, 2) mappable = axes[0].pcolormesh(A, vmin=vmin, vmax=vmax, cmap=cmocean.cm.oxy) fig.colorbar(mappable, ax=axes[0]) vmin = 0; vmax = 8; pivot = 5 newcmap = crop_by_percent(cmocean.cm.oxy, 20, which=’max’, N=None) plt.figure() plt.pcolormesh(A, vmin=vmin, vmax=vmax, cmap=newcmap) plt.colorbar()
# oxy 映射示例:裁剪掉底部的 20% 红色部分 # 与完整色图进行比较 vmin = 0; vmax = 10; pivot = 5 A = np.random.randint(vmin, vmax, (5,5)) fig, axes = plt.subplots(1, 2) mappable = axes[0].pcolormesh(A, vmin=vmin, vmax=vmax, cmap=cmocean.cm.oxy) fig.colorbar(mappable, ax=axes[0]) vmin = 2; vmax = 10; pivot = 5 A = np.random.randint(vmin, vmax, (5,5)) newcmap = crop_by_percent(cmocean.cm.oxy, 20, which=’min’, N=None) plt.figure() plt.pcolormesh(A, vmin=vmin, vmax=vmax, cmap=newcmap) plt.colorbar()
# 裁剪色图两端的深色部分以缩小范围 newcmap = crop_by_percent(cmocean.cm.balance, 10, which=’both’, N=None) plt.figure() A = np.random.randint(-5, 5, (5,5)) plt.pcolormesh(A, vmin=vmin, vmax=vmax, cmap=newcmap) plt.colorbar()
-
cmocean.tools.
get_dict
(cmap, N=256)¶ 将 RGB 转换为 LinearSegmentedColormap 期望的字典。代码来源:https://mycarta.wordpress.com/2014/04/25/convert-color-palettes-to-python-matplotlib-colormaps/ 和 http://nbviewer.ipython.org/github/kwinkunks/notebooks/blob/master/Matteo_colourmaps.ipynb
-
cmocean.tools.
lighten
(cmapin, alpha)¶ 通过添加 alpha < 1 来使色图变亮。
参数 - cmap – 一个色图对象,例如 cmocean.cm.matter。
- alpha – 为色图指定的 Alpha 或透明度值。Alpha 值为 1 是不透明的,Alpha 值为 0 是完全透明的。
输出结果色图对象。
- 这将使您使用输出色图对象制作的绘图外观变亮。
- 在绘图函数本身(例如 pcolormesh 或 contourf)中也可以使许多绘图变亮。
-
cmocean.tools.
print_colormaps
(cmaps, N=256, returnrgb=True, savefiles=False)¶ 将色图以 256 种 RGB 颜色打印到文本文件。
参数 returnrgb=False – 是否返回 RGB 数组。仅在打印一个色图的 RGB 时有意义。