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 ) [source] #
将数据显示为图像,即在 2D 常规栅格上。
输入可以是实际的 RGB(A) 数据,也可以是 2D 标量数据,它们将被渲染为伪彩色图像。要显示灰度图像,请使用参数设置颜色映射 。
cmap='gray', vmin=0, vmax=255
用于渲染图像的像素数由 Axes 大小和图形的dpi设置。这可能会在重新采样图像时导致锯齿伪影,因为显示的图像大小通常与X的大小不匹配(请参阅 图像抗锯齿)。可以通过插值参数和/或
rcParams["image.interpolation"]
(默认值:'antialiased'
)控制重采样。- 参数:
- X类数组或 PIL 图像
图像数据。支持的数组形状是:
(M, N):具有标量数据的图像。使用标准化和颜色图将值映射到颜色。请参阅参数norm、 cmap、vmin、vmax。
(M, N, 3):具有 RGB 值(0-1 float 或 0-255 int)的图像。
(M, N, 4):具有 RGBA 值(0-1 float 或 0-255 int)的图像,即包括透明度。
前两个维度 (M, N) 定义图像的行和列。
超出范围的 RGB(A) 值将被剪裁。
- cmap str 或
Colormap
,默认值:(rcParams["image.cmap"]
默认值'viridis'
:) 用于将标量数据映射到颜色的颜色图实例或注册的颜色图名称。
如果X为 RGB(A),则忽略此参数。
- 范数str 或
Normalize
, 可选 在使用cmap映射到颜色之前,用于将标量数据缩放到 [0, 1] 范围的标准化方法。默认情况下,使用线性缩放,将最小值映射到 0,将最大值映射到 1。
如果给出,这可以是以下之一:
一个实例
Normalize
或其子类之一(请参阅Colormap Normalization)。刻度名称,即“linear”、“log”、“symlog”、“logit”等之一。有关可用刻度的列表,请调用
matplotlib.scale.get_scale_names()
。Normalize
在这种情况下,会动态生成并实例化一个合适的子类。
如果X为 RGB(A),则忽略此参数。
- vmin, vmax浮点数,可选
当使用标量数据且没有明确的norm时,vmin和vmax定义颜色图覆盖的数据范围。默认情况下,颜色图覆盖所提供数据的完整值范围。给定范数实例时使用vmin / vmax是错误的 (但可以接受将范数 名称与vmin / vmax一起使用)。
str
如果X为 RGB(A),则忽略此参数。
- aspect {'equal', 'auto'} 或 float,默认值:(
rcParams["image.aspect"]
默认值'equal'
:) 轴的纵横比。此参数与图像特别相关,因为它确定数据像素是否为正方形。
此参数是显式调用的快捷方式
Axes.set_aspect
。有关详细信息,请参见那里。'equal':确保纵横比为 1。像素将是正方形(除非像素大小在数据坐标中使用extent显式设为非正方形)。
'auto':轴保持固定并调整纵横比以使数据适合轴。通常,这将导致非方形像素。
- 插值str,默认值:(
rcParams["image.interpolation"]
默认值'antialiased'
:) 使用的插值方法。
支持的值为 'none'、'antialiased'、'nearest'、'bilinear'、'bicubic'、'spline16'、'spline36'、'hanning'、'hamming'、'hermite'、'kaiser'、'quadric' , 'catrom', 'gaussian', 'bessel', 'mitchell', 'sinc', 'lanczos', 'blackman'。
如果插值是“无”,则不会在 Agg、ps、pdf 和 svg 后端执行插值。其他后端将回退到“最近”。请注意,大多数 SVG 渲染器在渲染时执行插值,并且它们实现的默认插值方法可能不同。
如果插值是默认的“抗锯齿”,则如果图像被上采样超过三倍(即显示像素的数量至少是数据数组大小的三倍),则使用“最近”插值。如果上采样率小于 3,或者图像被下采样,则使用“汉宁”插值作为抗锯齿滤波器,除非图像恰好被上采样了两倍或一倍。
有关支持的插值方法的概述, 请参阅 imshow的插值,有关图像抗锯齿的讨论,请参阅图像抗锯齿。
一些插值方法需要额外的半径参数,可以通过filterrad设置。此外,反颗粒图像调整大小过滤器由参数filternorm控制。
- 插值阶段 {'data', 'rgba'},默认值:'data'
如果是“数据”,则对用户提供的数据进行插值。如果为 'rgba',则在应用颜色映射后执行插值(视觉插值)。
- alpha浮点数或类似数组,可选
Alpha 混合值,介于 0(透明)和 1(不透明)之间。如果alpha是一个数组,则 alpha 混合值将逐个像素地应用,并且alpha必须具有与X相同的形状。
- 原点{'upper', 'lower'},默认值:(
rcParams["image.origin"]
默认值'upper'
:) 将数组的 [0, 0] 索引放置在 Axes 的左上角或左下角。约定(默认)“上”通常用于矩阵和图像。
请注意,“下”垂直轴指向上方,“上”指向下方。
有关示例和更详细的说明,请参阅imshow 教程中的来源和范围。
- 范围浮动(左、右、下、上),可选
图像将填充的数据坐标中的边界框。图像沿 x 和 y 单独拉伸以填充框。
默认范围由以下条件确定。像素在数据坐标中具有单位大小。它们的中心在整数坐标上,它们的中心坐标水平范围从 0 到 columns-1,垂直范围从 0 到 rows-1。
请注意,垂直轴的方向以及顶部和底部的默认值取决于原点:
默认 为.
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 教程中的来源和范围。
- filternorm布尔值,默认值:True
antigrain 图像调整大小过滤器的参数(请参阅 antigrain 文档)。如果设置了filternorm,则过滤器对整数值进行归一化并纠正舍入错误。它不对源浮点值做任何事情,它只根据 1.0 的规则纠正整数,这意味着像素权重的任何总和必须等于 1.0。因此,过滤器函数必须生成正确形状的图形。
- filterrad float > 0,默认值:4.0
具有半径参数的过滤器的过滤器半径,即当插值是以下之一时:“sinc”、“lanczos”或“blackman”。
- 重采样布尔值,默认值:(
rcParams["image.resample"]
默认值True
:) 当True时,使用完全重采样方法。当False时,仅在输出图像大于输入图像时重新采样。
- url str,可选
设置创建的 url
AxesImage
。见Artist.set_url
。
- 返回:
- 其他参数:
也可以看看
matshow
将矩阵或数组绘制为图像。
笔记
除非使用范围,否则像素中心将位于整数坐标处。换句话说:原点将与像素的中心重合 (0, 0)。
具有 Alpha 通道的 RGB 图像有两种常见的表示形式:
直接(非关联)Alpha:R、G 和 B 通道代表像素的颜色,不考虑其不透明度。
预乘(关联)alpha:R、G 和 B 通道表示像素的颜色,通过乘法调整其不透明度。
imshow
期望 RGB 图像采用直接(未关联)的 alpha 表示。