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'
)
- cmapstr 或
- 返回:
- 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 值。
- 参数:
- name
Colormap
或 str 或 None,默认值: None 如果为
Colormap
实例,则返回该实例。否则,为 Matplotlib 已知色图的名称,该色图将通过 lut 进行重采样。默认值 None 表示rcParams["image.cmap"]
(默认值:'viridis'
)。- lutint 或 None,默认值: None
如果 name 尚未是 Colormap 实例且 lut 不为 None,则色图将被重采样,使其在查找表中包含 lut 条目。
- name
- 返回:
- Colormap
备注
自 3.7 版本弃用: 请改用
matplotlib.colormaps[name]
或matplotlib.colormaps.get_cmap()
或pyplot.get_cmap()
。
- class matplotlib.cm.ScalarMappable(colorizer, **kwargs)[source]#
-
- colorbar#
与此 ScalarMappable 关联的最后一个颜色条。可能为 None。
- get_array(self)[source]#
返回映射到颜色的值数组。
基类
ScalarMappable
对数组的维度和形状不作任何假设。
- 属性 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_norm(self, norm)[source]#
设置归一化实例。
- 参数:
- norm
Normalize
或 str 或 None
- norm
备注
如果存在任何颜色条使用此 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。在这两种情况下,如果 bytes 为 False(默认值),则 RGBA 数组将是 0-1 范围内的浮点数;如果为 True,则返回的 RGBA 数组将是 0 到 255 范围内的
uint8
。如果 norm 为 False,则不执行输入数据的归一化,并假定其范围为 (0-1)。