matplotlib.axes.Axes.pcolormesh#

Axes.pcolormesh(*args, alpha=None, norm=None, cmap=None, vmin=None, vmax=None, colorizer=None, shading=None, antialiased=False, data=None, **kwargs)[源码]#

创建一个带有非规则矩形网格的伪彩色图。

调用签名

pcolormesh([X, Y,] C, /, **kwargs)

X 和 Y 可用于指定四边形的角点。

参数 X、Y、C 仅限位置参数。

提示

pcolormeshpcolor 相似。在大多数情况下,它更快且更受推荐。有关差异的详细讨论,请参阅 pcolor() 和 pcolormesh() 之间的差异

参数:
C类数组

网格数据。支持的数组形状有

  • (M, N) 或 M*N: 具有标量数据的网格。值通过归一化和颜色映射映射到颜色。参见参数 norm, cmap, vmin, vmax

  • (M, N, 3):带有 RGB 值(0-1 浮点或 0-255 整数)的图像。

  • (M, N, 4):带有 RGBA 值(0-1 浮点或 0-255 整数)的图像,即包含透明度。

前两个维度 (M, N) 定义了网格数据的行和列。

X, Y数组型,可选

pcolormesh 四边形角点的坐标

(X[i+1, j], Y[i+1, j])       (X[i+1, j+1], Y[i+1, j+1])
                      ●╶───╴●
                      │     │
                      ●╶───╴●
    (X[i, j], Y[i, j])       (X[i, j+1], Y[i, j+1])

请注意,列索引对应于 x 坐标,行索引对应于 y。有关详细信息,请参阅下面的备注部分。

如果 shading='flat',则 XY 的维度应比 C 的维度大一,并且四边形的颜色由 C[i, j] 处的值决定。如果 XYC 具有相同的维度,则会发出警告,并且 C 的最后一行和列将被忽略。

如果 shading='nearest''gouraud',则 XY 的维度应与 C 相同(如果不是,将引发 ValueError)。对于 'nearest',颜色 C[i, j] 居中于 (X[i, j], Y[i, j])。对于 'gouraud',将在四边形角点之间进行平滑插值。

如果 *X* 和/或 *Y* 是 1 维数组或列向量,它们将根据需要扩展为相应的 2D 数组,形成一个矩形网格。

cmapstr 或 Colormap,默认值:rcParams["image.cmap"](默认值:'viridis'

用于将标量数据映射到颜色的颜色映射实例或已注册的颜色映射名称。

normstr 或 Normalize,可选

在采用 cmap 映射颜色之前,用于将标量数据缩放到 [0, 1] 范围的归一化方法。默认情况下,使用线性缩放,将最低值映射到 0,最高值映射到 1。

如果给定,可以是以下之一

vmin, vmax浮点型,可选

当使用标量数据且没有显式 norm 时,vminvmax 定义了颜色映射覆盖的数据范围。默认情况下,颜色映射覆盖所提供数据的完整值范围。在给定 norm 实例时使用 vmin/vmax 是错误的(但将str norm 名称与 vmin/vmax 一起使用是可以接受的)。

colorizerColorizer 或 None,默认值:None

用于将颜色映射到数据的 Colorizer 对象。如果为 None,则从 normcmap 创建一个 Colorizer 对象。

edgecolors{'none', None, 'face', color, color sequence},可选

边缘的颜色。默认为 'none'。可能的值:

单数形式 *edgecolor* 作为别名使用。

alpha浮点数,默认值: None

alpha 混合值,介于 0(透明)和 1(不透明)之间。

shading{'flat', 'nearest', 'gouraud', 'auto'},可选

四边形的填充样式;默认为rcParams["pcolor.shading"](默认值:'auto')。可能的值

  • 'flat':每个四边形使用纯色。四边形 (i, j), (i+1, j), (i, j+1), (i+1, j+1) 的颜色由 C[i, j] 给出。XY 的维度应比 C 的维度大一;如果它们与 C 相同,则会发出弃用警告,并且 C 的最后一行和列将被丢弃。

  • 'nearest':每个网格点都将有一个以其为中心的颜色,颜色范围延伸到相邻网格中心之间的一半距离。*X* 和 *Y* 的维度必须与 *C* 相同。

  • 'gouraud':每个四边形都将进行 Gouraud 着色:角点 (i', j') 的颜色由 C[i', j'] 给出。中间区域的颜色值从角点值插值得到。XY 的维度必须与 C 相同。使用 Gouraud 着色时,edgecolors 将被忽略。

  • 'auto':如果 *X* 和 *Y* 的维度比 *C* 大一,则选择 'flat'。如果维度相同,则选择 'nearest'。

有关更多说明,请参阅 pcolormesh 网格和着色

snap布尔型,默认值: False

是否将网格对齐到像素边界。

rasterizedbool,可选

在绘制矢量图形时对 pcolormesh 进行栅格化。这可以加快渲染速度并为大型数据集生成更小的文件。另请参阅矢量图形栅格化

返回:
matplotlib.collections.QuadMesh
其他参数:
data可索引对象,可选

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

**kwargs

此外,还允许使用以下参数。它们被传递给QuadMesh 构造函数

属性

描述

agg_filter

一个过滤函数,它接受一个 (m, n, 3) 浮点数组和一个 dpi 值,并返回一个 (m, n, 3) 数组以及图像左下角的两个偏移量

alpha

类数组或浮点数或 None

animated

布尔值

antialiasedaaantialiaseds

布尔值或布尔值列表

array

类数组

capstyle

CapStyle 或 {'butt', 'projecting', 'round'}

clim

(vmin: 浮点数, vmax: 浮点数)

clip_box

BboxBase 或 None

clip_on

布尔值

clip_path

Patch 或 (Path, Transform) 或 None

cmap

Colormap 或 字符串 或 None

color

颜色 或 RGBA 元组列表

edgecolorecedgecolors

颜色颜色 列表或 'face'

facecolorfacecolorsfc

颜色颜色 列表

figure

FigureSubFigure

gid

str

hatch

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

hatch_linewidth

未知

in_layout

布尔值

joinstyle

JoinStyle 或 {'miter', 'round', 'bevel'}

label

object

linestyledasheslinestylesls

字符串或元组或其列表

linewidthlinewidthslw

浮点数或浮点数列表

mouseover

布尔值

norm

Normalize 或 字符串 或 None

offset_transformtransOffset

变换

offsets

(N, 2) 或 (2,) 类数组

path_effects

list of AbstractPathEffect

picker

None 或 布尔值 或 浮点数 或 可调用对象

pickradius

浮点数

rasterized

布尔值

sketch_params

(scale: 浮点数, length: 浮点数, randomness: 浮点数)

snap

布尔值或 None

transform

变换

url

str

字符串列表或 None

urls

visible

布尔值

zorder

浮点数

另请参阅

pcolor

一种功能略有不同的替代实现。有关差异的详细讨论,请参阅pcolor() 和 pcolormesh() 之间的差异

imshow

如果 XY 都是等距的,则imshow 可以是一种更快的替代方案。

备注

掩码数组

C 可以是掩码数组。如果 C[i, j] 被掩码,则对应的四边形将是透明的。不支持 XY 的掩码。如果您需要此功能,请使用pcolor

网格方向

网格方向遵循标准矩阵约定:形状为 (nrows, ncolumns) 的数组 *C* 将以列号作为 *X* 坐标,行号作为 *Y* 坐标进行绘制。

pcolor() 和 pcolormesh() 之间的差异

这两种方法都用于使用四边形创建二维数组的伪彩色图。

主要区别在于创建的对象和内部数据处理:pcolor 返回一个PolyQuadMesh,而pcolormesh 返回一个QuadMesh。后者更专门用于给定目的,因此更快。几乎总是应该优先使用它。

在处理掩码数组方面也存在细微差异。pcolorpcolormesh 都支持 C 的掩码数组。然而,只有pcolor 支持 XY 的掩码数组。原因在于掩码值的内部处理。pcolor 从 PolyQuadMesh 中省略了相应的多边形。pcolormesh 将掩码元素的 facecolor 设置为透明。在使用 edgecolors 时可以看到差异。虽然 QuadMesh 中所有边缘无论是否掩码都会被绘制,但pcolor 中两个相邻的掩码四边形之间的边缘不会被绘制,因为 PolyQuadMesh 中不存在相应的多边形。由于 PolyQuadMesh 绘制每个单独的多边形,它还支持对集合应用填充和线型。

另一个区别是pcolormesh 支持 Gouraud 着色,而pcolor 不支持。

使用 matplotlib.axes.Axes.pcolormesh 的示例#

pcolor 图像

pcolor 图像

pcolormesh 网格和着色

pcolormesh 网格和着色

pcolormesh

pcolormesh

QuadMesh 演示

QuadMesh 演示

矢量图形的光栅化

矢量图形的光栅化

时间序列直方图

时间序列直方图

图形子图形

图形子图形

pcolormesh(X, Y, Z)

pcolormesh(X, Y, Z)

放置颜色条

放置颜色条

约束布局指南

约束布局指南

在 Matplotlib 中创建颜色映射

在 Matplotlib 中创建颜色映射

颜色映射归一化

颜色映射归一化