matplotlib.cm#

内置色图、色图处理工具以及 ScalarMappable 混合类。

另请参阅

有关内置色图的列表,请参阅色图参考

有关如何创建色图的示例,请参阅在 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

force布尔值,默认值: False

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

unregister(name)[source]#

从注册表中移除一个色图。

您不能移除内置色图。

如果指定名称的色图未注册,则无错误返回;如果您尝试取消注册默认色图,则会引发错误。

警告

色图名称目前是一个共享命名空间,可能被多个包使用。仅当您知道之前注册过该名称时才使用 unregister。特别是,不要为了在注册新色图之前清除名称而随意取消注册。

参数:
namestr

要移除的色图的名称。

引发:
ValueError

如果您尝试移除默认的内置色图。

matplotlib.cm.get_cmap(name=None, lut=None)[source]#

[已弃用] 获取色图实例,如果 name 为 None,则默认为 rc 值。

参数:
nameColormap 或 str 或 None,默认值: None

如果为 Colormap 实例,则返回该实例。否则,为 Matplotlib 已知色图的名称,该色图将通过 lut 进行重采样。默认值 None 表示 rcParams["image.cmap"](默认值:'viridis')。

lutint 或 None,默认值: None

如果 name 尚未是 Colormap 实例且 lut 不为 None,则色图将被重采样,使其在查找表中包含 lut 条目。

返回:
Colormap

备注

自 3.7 版本弃用: 请改用 matplotlib.colormaps[name]matplotlib.colormaps.get_cmap()pyplot.get_cmap()

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

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

autoscale_None(self)[source]#

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

changed(self)[source]#

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

colorbar#

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

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

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

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

get_clim(self)[source]#

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

get_cmap(self)[source]#

返回 Colormap 实例。

属性 norm#
set_array(self, A)[source]#

从类数组 A 设置值数组。

参数:
A类数组或 None

映射到颜色的值。

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

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

设置图像缩放的 norm 限制。

参数:
vmin, vmax浮点数

这些限制。

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

set_cmap(self, cmap)[source]#

为亮度数据设置色图。

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

设置归一化实例。

参数:
normNormalize 或 str 或 None

备注

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

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

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

在正常情况下,x 是一个一维或二维标量序列,将根据此 Colorizer 设置的 norm 和色图返回相应的 RGBA 值 ndarray

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

在这两种情况下,如果 bytesFalse(默认值),则 RGBA 数组将是 0-1 范围内的浮点数;如果为 True,则返回的 RGBA 数组将是 0 到 255 范围内的 uint8

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