matplotlib.cm#

内置色彩映射表 (colormaps)、色彩映射表处理工具以及 ScalarMappable 混入类 (mixin)。

另请参阅

色彩映射表参考,列出了所有内置色彩映射表。

在 Matplotlib 中创建色彩映射表,介绍了如何制作色彩映射表的示例。

在 Matplotlib 中选择色彩映射表,深入讨论如何选择色彩映射表。

色彩映射表归一化,了解关于数据归一化的更多详情。

class matplotlib.cm.ColormapRegistry(cmaps)[source]#

基类:Mapping

已知 Matplotlib 命名的色彩映射容器。

全局注册表实例为 matplotlib.colormaps。用户通常无需自行实例化 ColormapRegistry。

读取访问使用类字典接口,将名称映射到 Colormap

import matplotlib as mpl
cmap = mpl.colormaps['viridis']

返回的 Colormap 是副本,因此对它们的修改不会改变色彩映射表的全局定义。

可以通过 ColormapRegistry.register 添加额外的色彩映射表。

mpl.colormaps.register(my_colormap)

要获取所有注册色彩映射的列表,您可以执行以下操作:

from matplotlib import colormaps
list(colormaps)
get_cmap(cmap)[source]#

返回通过 cmap 指定的色彩映射表。

参数:
cmapstr 或 Colormap 或 None
  • 如果为 Colormap,则直接返回它

  • 如果为字符串,则在 mpl.colormaps 中查找

  • 如果为 None,则返回 rcParams["image.cmap"] 中定义的色彩映射表(默认:'viridis')

返回:
Colormap
register(cmap, *, name=None, force=False)[source]#

注册一个新的色彩映射表。

注册后,该色彩映射表名称可用作 Matplotlib 中任何 cmap 参数的字符串参数。它也可在 pyplot.get_cmap 中使用。

色彩映射表注册表会存储给定色彩映射表的副本,因此未来对原始色彩映射表实例的更改不会影响已注册的色彩映射表。可以将其视为注册表在注册时对色彩映射表进行了一次快照。

参数:
cmapmatplotlib.colors.Colormap

要注册的色彩映射表。

namestr, 可选

色彩映射表的名称。如果未指定,则使用 cmap.name。

forcebool,默认:False

如果为 False,则在尝试覆盖已注册名称时会引发 ValueError。True 支持覆盖除内置色彩映射表以外的已注册色彩映射表。

unregister(name)[source]#

从注册表中移除一个色彩映射表。

不能移除内置的色彩映射表。

如果指定的色彩映射表未注册,则直接返回且不报错;如果尝试注销默认色彩映射表,则会引发错误。

警告

色彩映射表名称目前是一个共享命名空间,可能被多个包使用。仅当确定之前注册过该名称时才使用 unregister。特别注意,不要为了清理名称而盲目注销。

参数:
namestr

要移除的色彩映射表的名称。

引发:
ValueError

如果尝试移除默认的内置色彩映射表。

class matplotlib.cm.ScalarMappable(colorizer, **kwargs)[source]#
autoscale()[source]#

使用当前数组自动缩放 norm 实例上的标量限制

autoscale_None()[source]#

使用当前数组自动缩放 norm 实例上的标量限制,仅更改为 None 的限制

changed()[source]#

每当映射对象发生更改时调用此函数,以通知所有 callbackSM 监听器“changed”信号。

property colorbar#

与此对象关联的最后一个颜色条。可能为 None。

get_alpha()[source]#
get_array()[source]#

返回映射到颜色的值数组。

基类 ScalarMappable 不对数组的维度和形状做任何假设。

get_clim()[source]#

返回映射到色图限制的值(最小值,最大值)。

get_cmap()[source]#

返回 Colormap 实例。

property norm#
set_array(A)[source]#

从类数组 A 设置值数组。

参数:
A类数组或 None

映射到颜色的值。

基类 ScalarMappable 不对值数组 A 的维度和形状做任何假设。

set_clim(vmin=None, vmax=None)[source]#

设置图像缩放的 norm 限制。

参数:
vmin, vmax浮点数

这些限制。

对于标量数据,限制也可以作为单个位置参数以元组 (vmin, vmax) 的形式传递。

set_cmap(cmap)[source]#

为亮度数据设置色图。

参数:
cmapColormap 或 str 或 None
set_norm(norm)[source]#

设置归一化实例。

参数:
normNormalize 或 str 或 None

备注

如果存在任何颜色条使用此 norm 的可映射对象,则设置可映射对象的 norm 将把颜色条上的 norm、定位器和格式化程序重置为默认值。

to_rgba(x, alpha=None, bytes=False, norm=True)[source]#

返回与 x 对应的标准化 RGBA 数组。

在正常情况下,x 是标量的一维或二维序列,并将基于为此 Colorizer 设置的归一化(norm)和颜色映射(colormap)返回相应的 RGBA 值的 ndarray。

有一种特殊情况,用于处理已经是 RGB 或 RGBA 的图像,例如从图像文件读取的图像。如果 x 是具有 3 个维度的 ndarray,且最后一个维度为 3 或 4,则它将被视为 RGB 或 RGBA 数组,并且不会执行映射。数组可以是 uint8,也可以是 0-1 范围内的浮点数;否则将引发 ValueError。任何 NaN 或掩码元素将被设置为 0 alpha。如果最后一个维度为 3,则 alpha 参数(默认为 1)将用于填充透明度。如果最后一个维度为 4,则忽略 alpha 参数;它不会替换预先存在的 alpha。如果第三个维度不是 3 或 4,则会引发 ValueError。

无论哪种情况,如果 bytes 为 False(默认值),返回的 RGBA 数组将是 0-1 范围内的浮点数;如果是 True,返回的 RGBA 数组将是 0 到 255 范围内的 uint8。

如果 norm 为 False,则不执行输入数据的归一化,并假定其范围为 (0-1)。