matplotlib.axes.Axes.imshow#
- Axes.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)[source]#
将数据显示为图像,即在 2D 规则栅格上。
输入可以是实际的 RGB(A) 数据,也可以是 2D 标量数据,后者将作为伪彩色图像渲染。要显示灰度图像,请使用参数
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) 值将被裁剪。
- cmapstr 或
Colormap
,默认值:rcParams["image.cmap"]
(默认值:'viridis'
) 用于将标量数据映射到颜色的颜色映射实例或已注册的颜色映射名称。
如果 X 是 RGB(A),则此参数将被忽略。
- normstr 或
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
)。- interpolationstr,默认值:
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 设置。此外,antigrain 图像调整大小过滤器由参数 filternorm 控制。
- interpolation_stage{'auto', 'data', 'rgba'},默认值:'auto'
支持的值
'data':插值在用户提供的数据上进行。这在向上采样时在像素之间进行插值时很有用。
'rgba':在应用颜色映射后,在 RGBA 空间中进行插值。这在向下采样和视觉组合像素时很有用。
'auto':自动选择合适的插值阶段。向下采样或以小于 3 的速率向上采样时使用 'rgba',以更高速率向上采样时使用 'data'。
有关图像抗锯齿的讨论,请参见图像重采样。
- alpha浮点数或类数组,可选
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),可选
图像将填充的数据坐标中的边界框。这些值可以带单位,并与 Axes 的单位匹配。图像沿 x 和 y 方向单独拉伸以填充该框。
默认范围由以下条件决定。像素在数据坐标中具有单位大小。它们的中心位于整数坐标上,并且它们的中心坐标水平方向从 0 到列数-1,垂直方向从 0 到行数-1。
请注意,垂直轴的方向以及因此 top 和 bottom 的默认值取决于 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 图像大小调整过滤器的一个参数(参见 antigrain 文档)。如果设置了 filternorm,过滤器将归一化整数值并纠正舍入误差。它不处理源浮点值,它仅根据 1.0 规则纠正整数,这意味着任何像素权重的总和必须等于 1.0。因此,过滤器函数必须生成适当形状的图形。
- filterrad浮点数 > 0,默认值:4.0
具有半径参数的过滤器的过滤半径,即当插值为以下之一时:“sinc”、“lanczos”或“blackman”。
- resamplebool,默认值:
rcParams["image.resample"]
(默认值:True
) 当为 True 时,使用完整的重采样方法。当为 False 时,仅当输出图像大于输入图像时才进行重采样。
- urlstr,可选
设置创建的
AxesImage
的 url。参见Artist.set_url
。
- 返回:
- 其他参数:
另请参阅
matshow
将矩阵或数组绘制为图像。
备注
除非使用 extent,否则像素中心将位于整数坐标处。换句话说:原点将与像素 (0, 0) 的中心重合。
带有 alpha 通道的 RGB 图像有两种常见的表示方式
直通(非关联)alpha:R、G 和 B 通道表示像素的颜色,不考虑其不透明度。
预乘(关联)alpha:R、G 和 B 通道表示像素的颜色,通过乘法调整其不透明度。
imshow
期望 RGB 图像采用直通(非关联)alpha 表示。