matplotlib.pyplot.imshow#
- matplotlib.pyplot.imshow(X, cmap=None, norm=None, *, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, interpolation_stage=None, filternorm=True, filterrad=4.0, resample=None, url=None, data=None, **kwargs)[源代码][源代码]#
将数据显示为图像,即在二维规则栅格上。
输入可以是实际的 RGB(A) 数据,或者是二维标量数据,这些数据将被渲染为伪彩色图像。要显示灰度图像,请使用参数
cmap='gray', vmin=0, vmax=255
设置颜色映射。渲染图像所使用的像素数量由 Axes 大小和图形 dpi 设置。当图像被重新采样时,这可能导致走样伪影,因为显示的图像大小通常不会与 X 的大小匹配(参见 图像重采样)。可以通过 interpolation 参数和/或
rcParams["image.interpolation"]
(default:'auto'
) 来控制重新采样。- 参数:
- X类似数组或PIL图像
图像数据。支持的数组形状有:
(M, N): 一张标量数据的图像。这些值通过归一化和颜色映射被映射为颜色。参见参数 norm、cmap、vmin、vmax。
(M, N, 3): 一张带有RGB值(0-1浮点数或0-255整数)的图像。
(M, N, 4): 一张包含 RGBA 值(0-1 浮点数或 0-255 整数)的图像,即包括透明度。
前两个维度 (M, N) 定义了图像的行和列。
超出范围的 RGB(A) 值会被裁剪。
- cmap : str 或
Colormap
,默认值:rcParams["image.cmap"]
(default:'viridis'
)字符串或 用于将标量数据映射为颜色的 Colormap 实例或已注册的 colormap 名称。
如果 X 是 RGB(A),则忽略此参数。
- norm : str 或
Normalize
,可选字符串或 在将标量数据映射到颜色之前,用于将标量数据缩放到 [0, 1] 范围的归一化方法。默认情况下,使用线性缩放,将最低值映射为 0,最高值映射为 1。
如果提供,这可以是以下之一:
一个刻度名称,即“linear”、“log”、“symlog”、“logit”等之一。要获取可用刻度列表,请调用
matplotlib.scale.get_scale_names()
。在这种情况下,会动态生成并实例化一个合适的Normalize
子类。
如果 X 是 RGB(A),则忽略此参数。
- vmin, vmax浮点数, 可选
在使用标量数据且未指定 norm 时,vmin 和 vmax 定义了颜色映射覆盖的数据范围。默认情况下,颜色映射覆盖所提供数据的完整值范围。当给定 norm 实例时,使用 vmin/vmax 是错误的(但使用
str
norm 名称与 vmin/vmax 一起是可以接受的)。如果 X 是 RGB(A),则忽略此参数。
- 方面{'equal', 'auto'} 或浮点数或 None,默认值:None
Axes 的纵横比。此参数对于图像尤其重要,因为它决定了数据像素是否为方形。
此参数是显式调用
Axes.set_aspect
的快捷方式。更多详情请参见那里。'equal': 确保宽高比为1。像素将是正方形(除非使用 extent 在数据坐标中显式地将像素尺寸设为非正方形)。
'auto': 保持Axes固定,并调整纵横比,使数据适合Axes。通常,这将导致非方形像素。
通常,None(默认值)意味着使用
rcParams["image.aspect"]
(default:'equal'
)。 然而,如果图像使用了一个不包含轴数据变换的变换,那么None意味着完全不修改轴的纵横比(在这种情况下,如果需要,可以直接调用Axes.set_aspect
)。- 插值 : str, 默认值:
rcParams["image.interpolation"]
(default:'auto'
)str, 默认值: 所使用的插值方法。
支持的值有 'none', 'auto', 'nearest', 'bilinear', 'bicubic', 'spline16', 'spline36', 'hanning', 'hamming', 'hermite', 'kaiser', 'quadric', 'catrom', 'gaussian', 'bessel', 'mitchell', 'sinc', 'lanczos', 'blackman'。
数据 X 被重采样到图像画布上的像素大小,使用插值方法对数据进行上采样或下采样。
如果 插值 是 'none',那么对于 ps、pdf 和 svg 后端,不会发生下采样或上采样,图像数据将作为原生图像传递给后端。请注意,不同的 ps、pdf 和 svg 查看器可能会以不同方式显示这些原始像素。在其他后端,'none' 与 'nearest' 相同。
如果 插值 是默认的 'auto',那么如果图像被放大超过三倍(即显示像素的数量至少是数据数组大小的三倍),则使用 'nearest' 插值。如果放大率小于3,或者图像被缩小,则使用 'hanning' 插值作为抗锯齿滤波器,除非图像恰好被放大了两倍或一倍。
有关支持的插值方法的概述,请参阅 imshow 的插值,关于图像抗锯齿的讨论,请参阅 图像重采样。
一些插值方法需要一个额外的半径参数,可以通过 filterrad 设置。此外,抗锯齿图像缩放滤波器由参数 filternorm 控制。
- 插值阶段{'auto', 'data', 'rgba'}, 默认: 'auto'
支持的值:
'data': 插值是在用户提供的数据上进行的。这在放大过程中在像素之间进行插值时非常有用。
'rgba': 在应用颜色映射后,插值在 RGBA 空间中进行。这在下采样和视觉上组合像素时很有用。
'auto': 自动选择合适的插值阶段。在降采样时使用 'rgba',或在采样率小于 3 时进行上采样,而在采样率较高时进行上采样时使用 'data'。
有关图像抗锯齿的讨论,请参见 图像重采样。
- alpha浮点数或类似数组的类型,可选
阿尔法混合值,介于 0(透明)和 1(不透明)之间。如果 alpha 是一个数组,阿尔法混合值将逐像素应用,并且 alpha 必须与 X 具有相同的形状。
- origin : {'upper', 'lower'}, 默认值:
rcParams["image.origin"]
(default:'upper'
){'upper', 'lower'}, 默认: 将数组的 [0, 0] 索引放置在 Axes 的左上角或左下角。约定(默认)'upper' 通常用于矩阵和图像。
注意,对于'lower',垂直轴向上,而对于'upper',垂直轴向下。
有关示例和更详细的描述,请参阅 origin 和 extent 在 imshow 中 教程。
- 范围浮动(左、右、下、上),可选
图像将填充的数据坐标中的边界框。这些值可能是有单位的,并且与Axes的单位匹配。图像在x和y方向上分别拉伸以填充该框。
默认范围由以下条件决定。像素在数据坐标中具有单位大小。它们的中心位于整数坐标上,并且它们的中心坐标水平范围从0到列数-1,垂直范围从0到行数-1。
请注意,垂直轴的方向以及顶部和底部的默认值取决于 origin :
对于
origin == 'upper'
,默认值是(-0.5, numcols-0.5, numrows-0.5, -0.5)
。对于
origin == 'lower'
,默认值是(-0.5, numcols-0.5, -0.5, numrows-0.5)
。
有关示例和更详细的描述,请参阅 origin 和 extent 在 imshow 中 教程。
- filternormbool, 默认: True
用于抗锯齿图像缩放滤镜的参数(参见抗锯齿文档)。如果设置了 filternorm,滤镜会规范化整数值并修正舍入误差。它不会对源浮点值做任何处理,只会根据1.0的规则修正整数,这意味着任何像素权重的总和必须等于1.0。因此,滤镜函数必须生成适当形状的图表。
- filterradfloat > 0, 默认值: 4.0
对于具有半径参数的滤波器,即当插值是以下之一时:'sinc'、'lanczos' 或 'blackman',滤波器半径。
- resample : bool, 默认值:
rcParams["image.resample"]
(default:True
)布尔值,默认: 当 True 时,使用完全重采样方法。当 False 时,仅在输出图像大于输入图像时进行重采样。
- urlstr, 可选
设置创建的
AxesImage
的 URL。参见Artist.set_url
。
- 返回:
- 其他参数:
参见
matshow
将矩阵或数组绘制为图像。
注释
备注
这是
axes.Axes.imshow
的 pyplot 包装器。除非使用 extent ,像素中心将位于整数坐标上。换句话说:原点将与像素 (0, 0) 的中心重合。
对于带有alpha通道的RGB图像,有两种常见的表示方式:
直接(未关联)的Alpha通道:R、G和B通道表示像素的颜色,忽略其不透明度。
预乘(关联)alpha:R、G 和 B 通道表示像素的颜色,通过乘法调整其不透明度。
imshow
期望采用直(未关联)alpha表示的RGB图像。