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): 一张标量数据的图像。这些值通过归一化和颜色映射被映射为颜色。参见参数 normcmapvminvmax

  • (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。

如果提供,这可以是以下之一:

如果 X 是 RGB(A),则忽略此参数。

vmin, vmax浮点数, 可选

在使用标量数据且未指定 norm 时,vminvmax 定义了颜色映射覆盖的数据范围。默认情况下,颜色映射覆盖所提供数据的完整值范围。当给定 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

返回:
AxesImage
其他参数:
数据可索引对象,可选

如果给出,所有参数也接受一个字符串 s,如果 sdata 中的一个键,则它被解释为 data[s]

**kwargs : Artist 属性艺术家属性

这些参数被传递给 AxesImage 艺术家的构造函数。

参见

matshow

将矩阵或数组绘制为图像。

注释

备注

这是 axes.Axes.imshowpyplot 包装器

除非使用 extent ,像素中心将位于整数坐标上。换句话说:原点将与像素 (0, 0) 的中心重合。

对于带有alpha通道的RGB图像,有两种常见的表示方式:

  • 直接(未关联)的Alpha通道:R、G和B通道表示像素的颜色,忽略其不透明度。

  • 预乘(关联)alpha:R、G 和 B 通道表示像素的颜色,通过乘法调整其不透明度。

imshow 期望采用直(未关联)alpha表示的RGB图像。

使用 matplotlib.pyplot.imshow 的示例#

超链接

Hyperlinks