matplotlib.pyplot.imshow#
- matplotlib.pyplot.imshow(X, cmap=None, norm=None, *, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, colorizer=None, origin=None, extent=None, interpolation_stage=None, filternorm=True, filterrad=4.0, resample=None, url=None, data=None, **kwargs)[源]#
将数据显示为图像,即在 2D 规则栅格上。
输入可以是实际的 RGB(A) 数据,也可以是二维标量数据,后者将作为伪彩色图像渲染。要显示灰度图像,请使用参数
cmap='gray', vmin=0, vmax=255
设置颜色映射。用于渲染图像的像素数量由轴(Axes)大小和图形的 dpi(每英寸点数)设置。当图像被重新采样时,这可能导致锯齿伪影,因为显示的图像大小通常与 X 的大小不匹配(参见 图像重采样)。重采样可以通过 interpolation 参数和/或
rcParams["image.interpolation"]
(默认值:'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字符串或
Colormap
,默认值:rcParams["image.cmap"]
(默认值:'viridis'
) 用于将标量数据映射到颜色的颜色映射实例或已注册的颜色映射名称。
如果 X 是 RGB(A),则此参数将被忽略。
- norm字符串或
Normalize
,可选 在采用 cmap 映射颜色之前,用于将标量数据缩放到 [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),则此参数将被忽略。
- colorizer
Colorizer
或 None,默认值:None 用于将颜色映射到数据的 Colorizer 对象。如果为 None,则从 norm 和 cmap 创建一个 Colorizer 对象。
如果 X 是 RGB(A),则此参数将被忽略。
- aspect{'equal', 'auto'} 或 float 或 None,默认值:None
Axes 的纵横比。此参数对于图像尤为重要,因为它决定了数据像素是否为正方形。
此参数是明确调用
Axes.set_aspect
的快捷方式。更多详细信息请参阅该处。‘equal’:确保宽高比为 1。像素将是正方形的(除非使用 extent 在数据坐标中明确将像素大小设置为非正方形)。
'auto':Axes 保持固定,纵横比会调整,以便数据适合 Axes。通常,这将导致非正方形像素。
通常,None(默认值)意味着使用
rcParams["image.aspect"]
(默认值:'equal'
)。然而,如果图像使用的变换不包含轴数据变换,则 None 意味着完全不修改轴的宽高比(在这种情况下,如果需要,直接调用Axes.set_aspect
)。- interpolation字符串,默认值:
rcParams["image.interpolation"]
(默认值:'auto'
) 使用的插值方法。
支持的值有 'none', 'auto', 'nearest', 'bilinear', 'bicubic', 'spline16', 'spline36', 'hanning', 'hamming', 'hermite', 'kaiser', 'quadric', 'catrom', 'gaussian', 'bessel', 'mitchell', 'sinc', 'lanczos', 'blackman'。
数据 X 使用插值方法被重采样到图形画布上图像的像素大小,以对数据进行放大或缩小采样。
如果 interpolation 为 'none',则对于 ps、pdf 和 svg 后端,不会发生降采样或升采样,并且图像数据作为原生图像传递给后端。请注意,不同的 ps、pdf 和 svg 查看器可能会以不同的方式显示这些原始像素。在其他后端上,'none' 与 'nearest' 相同。
如果 interpolation 是默认的 'auto',那么当图像放大采样超过三倍时(即显示像素的数量至少是数据数组大小的三倍),将使用 'nearest' 插值。如果放大采样率小于 3,或者图像被降采样,则使用 'hanning' 插值作为抗锯齿滤波器,除非图像恰好被放大采样两倍或一倍。
有关支持的插值方法的概述,请参见 imshow 的插值方法,有关图像抗锯齿的讨论,请参见 图像重采样。
一些插值方法需要一个额外的半径参数,可以通过 filterrad 设置。此外,抗锯齿图像大小调整滤镜由参数 filternorm 控制。
- interpolation_stage{'auto', 'data', 'rgba'},默认值:'auto'
支持的值
‘data’:插值在用户提供的数据上执行。这在升采样期间在像素之间进行插值时很有用。
‘rgba’:插值在应用颜色映射后在 RGBA 空间中执行。这在降采样和视觉组合像素时很有用。
‘auto’:自动选择合适的插值阶段。在降采样或以小于 3 的速率进行升采样时使用 'rgba',在以更高速率进行升采样时使用 'data'。
有关图像抗锯齿的讨论,请参见 图像重采样。
- alphafloat 或类数组,可选
Alpha 混合值,介于 0(透明)和 1(不透明)之间。如果 alpha 是一个数组,则 alpha 混合值逐像素应用,并且 alpha 必须与 X 具有相同的形状。
- origin{'upper', 'lower'},默认值:
rcParams["image.origin"]
(默认值:'upper'
) 将数组的 [0, 0] 索引放置在轴(Axes)的左上角或左下角。约定(默认值)'upper' 通常用于矩阵和图像。
请注意,对于 'lower',垂直轴向上;而对于 'upper',垂直轴向下。
有关示例和更详细的说明,请参见 imshow 中的原点和范围 教程。
- extent浮点数 (left, right, bottom, top),可选
图像将填充的数据坐标中的边界框。这些值可以带单位并与轴的单位匹配。图像沿 x 和 y 方向单独拉伸以填充该框。
默认范围由以下条件决定。像素在数据坐标中具有单位大小。它们的中心位于整数坐标上,并且它们的中心坐标水平方向从 0 到 columns-1,垂直方向从 0 到 rows-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)
。
有关示例和更详细的说明,请参见 imshow 中的原点和范围 教程。
- filternormbool,默认值:True
抗锯齿图像大小调整滤镜的参数(参见 antigrain 文档)。如果设置了 filternorm,滤镜会规范化整数值并纠正舍入误差。它不对源浮点值做任何处理,它只根据 1.0 的规则纠正整数,这意味着任何像素权重的总和必须等于 1.0。因此,滤镜函数必须产生一个适当形状的图形。
- filterradfloat > 0,默认值:4.0
具有半径参数的过滤器的过滤半径,即当插值为以下之一时:“sinc”、“lanczos”或“blackman”。
- resamplebool,默认值:
rcParams["image.resample"]
(默认值:True
) 当为 True 时,使用完整的重采样方法。当为 False 时,仅当输出图像大于输入图像时才进行重采样。
- url字符串,可选
设置创建的
AxesImage
的 URL。参见Artist.set_url
。
- 返回:
- 其他参数:
另请参阅
matshow
将矩阵或数组绘制为图像。
备注
注意
这是 pyplot 封装器,用于
axes.Axes.imshow
。除非使用 extent,否则像素中心将位于整数坐标。换句话说:原点将与像素 (0, 0) 的中心重合。
带有 Alpha 通道的 RGB 图像有两种常见表示形式:
直通(非关联)Alpha:R、G 和 B 通道表示像素的颜色,不考虑其不透明度。
预乘(关联)Alpha:R、G 和 B 通道表示像素的颜色,通过乘法根据其不透明度进行调整。
imshow
期望采用直通(非关联)Alpha 表示的 RGB 图像。