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),并且为了使用此参数,两者应该相等。

输出结果颜色映射对象。

此函数可用于顺序和其他非发散颜色映射
但通过 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)

按百分比 per 裁剪颜色映射的末端或两端。

参数
  • 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。