cmocean 包

子模块

cmocean.cmocean 模块

cmocean.plots 模块

带色图的绘图。

制作色图和标签的绘图,类似于 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 时有意义。

模块内容

cmocean 是一个包,旨在帮助标准化常用海洋学属性的色图。

有关说明的概述,请参阅 README.md。