matplotlib.axes.Axes.pcolormesh#
- Axes.pcolormesh(*args, alpha=None, norm=None, cmap=None, vmin=None, vmax=None, shading=None, antialiased=False, data=None, **kwargs)[源代码][源代码]#
创建一个带有非规则矩形网格的伪彩色图。
调用签名:
pcolormesh([X, Y,] C, /, **kwargs)
X 和 Y 可以用来指定四边形的角。
参数 X, Y, C 是仅位置参数。
提示
pcolormesh
类似于pcolor
。它在大多数情况下速度更快,是首选。有关差异的详细讨论,请参见 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'
,X 和 Y 的维度应比 C 的维度大一,并且四边形的颜色由C[i, j]
处的值决定。如果 X、Y 和 C 具有相同的维度,将发出警告,并且 C 的最后一行和最后一列将被忽略。如果
shading='nearest'
或'gouraud'
,X 和 Y 的维度应与 C 的维度相同(否则将引发 ValueError)。对于'nearest'
,颜色C[i, j]
以(X[i, j], Y[i, j])
为中心。对于'gouraud'
,在四边形的角之间进行平滑插值。如果 X 和/或 Y 是 1-D 数组或列向量,它们将根据需要扩展为适当的 2D 数组,形成一个矩形网格。
- cmap : str 或
Colormap
,默认值:rcParams["image.cmap"]
(default:'viridis'
)str 或 用于将标量数据映射到颜色的 Colormap 实例或已注册的 colormap 名称。
toctree
是一个 reStructuredText 的 指令,是一种非常通用的标记。指令可以有参数、选项和内容。str 或在将标量数据映射到颜色之前,用于将标量数据缩放到 [0, 1] 范围的归一化方法。默认情况下,使用线性缩放,将最低值映射为 0,最高值映射为 1。
如果提供,这可以是以下之一:
一个刻度名称,即“linear”、“log”、“symlog”、“logit”等之一。要获取可用刻度列表,请调用
matplotlib.scale.get_scale_names()
。在这种情况下,会动态生成并实例化一个合适的Normalize
子类。
- vmin, vmaxfloat, 可选
在使用标量数据且未指定显式 norm 时,vmin 和 vmax 定义了颜色映射覆盖的数据范围。默认情况下,颜色映射覆盖所提供数据的完整值范围。当给定 norm 实例时,使用 vmin/vmax 是错误的(但使用
str
norm 名称与 vmin/vmax 一起是可接受的)。- 边缘颜色{'none', None, 'face', color, color sequence}, 可选
边缘的颜色。默认为 'none'。可能的值:
'none' 或 '': 无边框。
无:将使用
rcParams["patch.edgecolor"]
(default:'black'
)。请注意,目前必须将rcParams["patch.force_edgecolor"]
(default:False
) 设置为 True 才能生效。'face': 使用相邻面的颜色。
颜色或颜色序列将设置边缘颜色。
单数形式 edgecolor 作为别名使用。
- alphafloat, 默认值: None
alpha 混合值,介于 0(透明)和 1(不透明)之间。
- 着色{'flat', 'nearest', 'gouraud', 'auto'}, 可选
四边形的填充样式;默认为
rcParams["pcolor.shading"]
(default:'auto'
)。可能的值:'flat': 每个四边形使用一种纯色。四边形 (i, j), (i+1, j), (i, j+1), (i+1, j+1) 的颜色由
C[i, j]
给出。X 和 Y 的维度应比 C 的维度大一;如果它们与 C 相同,则会引发一个弃用警告,并丢弃 C 的最后一行和最后一列。'nearest': 每个网格点将有一个以其为中心的颜色,延伸到相邻网格中心之间的一半。X 和 Y 的维度必须与 C 相同。
'gouraud': 每个四边形将使用 Gouraud 着色:角的颜色 (i', j') 由
C[i', j']
给出。区域内的颜色值从角的颜色值插值得到。X 和 Y 的维度必须与 C 相同。当使用 Gouraud 着色时,edgecolors 被忽略。'auto': 如果 X 和 Y 的维度比 C 大一,则选择 'flat'。如果维度相同,则选择 'nearest'。
更多描述请参见 pcolormesh 网格和阴影。
- 快照bool, 默认: False
是否将网格对齐到像素边界。
- 光栅化布尔值,可选
在绘制矢量图形时栅格化 pcolormesh。这可以加快渲染速度,并为大型数据集生成更小的文件。另请参阅 矢量图形的栅格化。
- 返回:
- 其他参数:
- 数据可索引对象,可选
如果给出,所有参数也接受一个字符串
s
,如果s
是data
中的一个键,则解释为data[s]
。- **kwargs
此外,允许以下参数。它们被传递给
QuadMesh
构造函数:属性
描述
一个过滤函数,它接收一个 (m, n, 3) 的浮点数数组和一个 dpi 值,并返回一个 (m, n, 3) 数组和两个从图像左下角开始的偏移量
类似数组或标量或无
布尔
抗锯齿
或 aa 或 antialiaseds布尔值或布尔值列表
数组
类似数组
CapStyle
或 {'butt', 'projecting', 'round'}(vmin: 浮点数, vmax: 浮点数)
BboxBase
或 None布尔
补丁或(路径,变换)或无
Colormap
或 str 或 Nonecolor 或 RGBA 元组列表
edgecolor
或 ec 或 edgecolorsfacecolor
或 facecolors 或 fcstr
{'/', '', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
布尔
JoinStyle
或 {'miter', 'round', 'bevel'}对象
线型
或虚线或线型或 lsstr 或 tuple 或其列表
linewidth
或 linewidths 或 lw浮点数或浮点数列表
布尔
Normalize
或 str 或 Noneoffset_transform
或 transOffset(N, 2) 或 (2,) 数组类
None 或 bool 或 float 或 callable
浮动
布尔
(scale: float, length: float, randomness: float)
布尔值或无
str
list of str or None
布尔
浮动
参见
pcolor
一个具有略微不同特性的替代实现。有关差异的详细讨论,请参见 pcolor() 和 pcolormesh() 之间的差异。
imshow
如果 X 和 Y 每个都是等距的,
imshow
可以是一个更快的替代方案。
注释
掩码数组
C 可能是一个掩码数组。如果
C[i, j]
被掩码,相应的四边形将是透明的。不支持对 X 和 Y 进行掩码。如果需要此功能,请使用pcolor
。网格方向
网格方向遵循标准矩阵约定:形状为 (nrows, ncolumns) 的数组 C 绘制时,列号作为 X,行号作为 Y。
pcolor() 和 pcolormesh() 之间的区别
这两种方法都用于使用四边形创建二维数组的伪彩色图。
主要的区别在于创建的对象和内部数据处理:虽然
pcolor
返回一个PolyQuadMesh
,pcolormesh
返回一个QuadMesh
。后者更专门用于给定的目的,因此速度更快。它几乎总是应该被优先选择。在处理掩码数组时也有细微的差别。
pcolor
和pcolormesh
都支持 C 的掩码数组。然而,只有pcolor
支持 X 和 Y 的掩码数组。原因在于内部处理掩码值的方式。pcolor
从 PolyQuadMesh 中省略了相应的多边形。pcolormesh
将掩码元素的面颜色设置为透明。在使用边缘颜色时可以看到差异。尽管在 QuadMesh 中所有边缘都会被绘制,无论是否被掩码,但在pcolor
中,两个相邻的掩码四边形之间的边缘不会被绘制,因为相应的多边形在 PolyQuadMesh 中不存在。由于 PolyQuadMesh 绘制每个单独的多边形,它还支持将阴影和线型应用于集合。另一个区别是
pcolormesh
支持 Gouraud 着色,而pcolor
则不支持。