matplotlib.axes.Axes.contourf#

Axes.contourf(*args, data=None, **kwargs)[source]#

绘制填充等高线。

调用签名

contourf([X, Y,] Z, /, [levels], **kwargs)

参数 XYZ 仅接受位置参数。

contourcontourf 分别绘制等高线和填充等高线。除另有说明外,这两个函数的签名和返回值相同。

参数:
X, Y数组型,可选

Z 中各值的坐标。

XY 必须都是二维的,且形状与 Z 相同 (例如,通过 numpy.meshgrid 创建),或者它们必须都是一维的,并且 len(X) == N 等于 Z 中的列数,len(Y) == M 等于 Z 中的行数。

XY 都必须是单调有序的。

如果未给出,则假定它们是整数索引,即 X = range(N)Y = range(M)

Z(M, N) 数组类型

绘制等高线的高度值。颜色映射由 cmap, norm, vminvmax 控制。

levelsint 或 array-like, 可选

确定等高线/区域的数量和位置。

如果 n 是整数,使用 MaxNLocator,它会尝试在 Z 的最小和最大数值之间自动选择不超过 n+1 个“合适”的等高线级别。

如果为 array-like,则在指定级别绘制等高线。值必须按升序排列。

返回:
QuadContourSet
其他参数:
corner_mask布尔值,默认值:rcParams["contour.corner_mask"] (默认值:True)

启用/禁用角掩码,仅当 Z 是掩码数组时才有效。如果为 False,任何接触到被掩码点的四边形都将被掩码。如果为 True,则只有最接近这些点的四边形的三角形角始终被掩码,而由三个未掩码点组成的三角形角则照常绘制等高线。

colors颜色颜色 列表,可选

级别的颜色,即 contour 的线条颜色,以及 contourf 的区域颜色。

颜色序列按升序级别循环使用。如果序列短于级别数量,则会重复。

作为快捷方式,可以使用单个颜色代替单元素列表,例如 'red' 而不是 ['red'] 以相同颜色为所有级别着色。

3.10 版本更改: 以前单个颜色必须表示为字符串,但现在可以传入任何有效的颜色格式。

默认情况下(值为 None),将使用 cmap 指定的颜色映射。

alphafloat, 默认值: 1

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

cmap字符串或 Colormap,默认值:rcParams["image.cmap"] (默认值:'viridis')

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

如果设置了 colors,则此参数将被忽略。

norm字符串或 Normalize,可选

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

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

如果设置了 colors,则此参数将被忽略。

vmin, vmax浮点型,可选

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

如果未给出 vminvmax,则默认颜色缩放基于 levels

如果设置了 colors,则此参数将被忽略。

colorizerColorizer 或 None,默认值:None

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

如果设置了 colors,则此参数将被忽略。

origin{None, 'upper', 'lower', 'image'}, 默认值: None

通过指定 Z[0, 0] 的位置来确定 Z 的方向和精确位置。仅当未给出 XY 时才相关。

  • None: Z[0, 0] 位于左下角的 X=0, Y=0。

  • 'lower': Z[0, 0] 位于左下角的 X=0.5, Y=0.5。

  • 'upper': Z[0, 0] 位于左上角的 X=N+0.5, Y=0.5。

  • 'image': 使用 rcParams["image.origin"] 中的值 (默认值:'upper')。

extent(x0, x1, y0, y1), 可选

如果 origin 不为 None,则 extent 的解释方式与 imshow 中相同:它给出外部像素边界。在这种情况下,Z[0, 0] 的位置是像素中心,而不是角点。如果 originNone,则 (x0, y0) 是 Z[0, 0] 的位置,(x1, y1) 是 Z[-1, -1] 的位置。

如果在调用 contour 时指定了 XY,则此参数将被忽略。

locatorticker.Locator 子类, 可选

如果未通过 levels 明确给出等高线级别,则使用定位器确定等高线级别。默认为 MaxNLocator

extend{'neither', 'both', 'min', 'max'}, 默认值: 'neither'

确定超出 levels 范围的值的 contourf 颜色。

如果为 'neither',则超出 levels 范围的值不着色。如果为 'min', 'max' 或 'both',则为低于、高于或低于和高于 levels 范围的值着色。

低于 min(levels) 和高于 max(levels) 的值将映射到 Colormap 的下限/上限值。请注意,默认情况下,大多数颜色映射不会为这些值设置专用颜色,因此上限和下限值是颜色映射的边缘值。您可能希望使用 Colormap.set_underColormap.set_over 明确设置这些值。

注意

如果颜色映射的属性发生更改,现有的 QuadContourSet 不会收到通知。因此,在修改颜色映射后,需要显式调用 changed()。如果将颜色条分配给 QuadContourSet,则可以省略显式调用,因为它会在内部调用 changed()

示例

x = np.arange(1, 10)
y = x.reshape(-1, 1)
h = x * y

cs = plt.contourf(h, levels=[10, 30, 50],
    colors=['#808080', '#A0A0A0', '#C0C0C0'], extend='both')
cs.cmap.set_over('red')
cs.cmap.set_under('blue')
cs.changed()
xunits, yunits已注册的单位, 可选

通过指定 matplotlib.units.ConversionInterface 的实例来覆盖坐标轴单位。

antialiasedbool, 可选

启用抗锯齿,覆盖默认值。对于填充等高线,默认值为 False。对于线条等高线,它取自 rcParams["lines.antialiased"] (默认值: True)。

nchunkint >= 0, 可选

如果为 0,则不细分域。指定一个正整数,将域划分为 nchunknchunk 四边形的子域。分块(Chunking)减少了等高线算法生成的最大多边形长度,从而减少了传递给后端的渲染工作负载,也略微减少了内存需求。但是,它可能会在块边界处引入渲染伪影,具体取决于后端、antialiased 标志和 alpha 值。

linewidths浮点数或数组类型,默认值:rcParams["contour.linewidth"] (默认值:None)

仅适用于 contour

等高线的线宽。

如果是一个数字,所有级别都将以此线宽绘制。

如果是一个序列,则按升序排列的级别将按指定顺序的线宽绘制。

如果为 None,则回退到 rcParams["lines.linewidth"] (默认值:1.5)。

linestyles{None, 'solid', 'dashed', 'dashdot', 'dotted'}, 可选

仅适用于 contour

如果 linestylesNone,则默认值为 'solid',除非线条是单色的。在这种情况下,负等高线将从 negative_linestyles 参数中获取其线型。

linestyles 也可以是上述字符串的可迭代对象,指定一组要使用的线型。如果此可迭代对象短于等高线级别数,则会根据需要重复。

negative_linestyles{None, 'solid', 'dashed', 'dashdot', 'dotted'}, 可选

仅适用于 contour

如果 linestylesNone 且线条是单色的,此参数指定负等高线的线型。

如果 negative_linestylesNone,则默认值取自 rcParams["contour.negative_linestyle"] (默认值:'dashed')。

negative_linestyles 也可以是上述字符串的可迭代对象,指定一组要使用的线型。如果此可迭代对象短于等高线级别数,则会根据需要重复。

hatcheslist[str], 可选

仅适用于 contourf

要在填充区域上使用的交叉影线图案列表。如果为 None,则不会向等高线添加影线。

algorithm{'mpl2005', 'mpl2014', 'serial', 'threaded'}, 可选

用于计算等高线和多边形的等高线算法。这些算法在 ContourPy 中实现,更多信息请参阅 ContourPy documentation

默认值取自 rcParams["contour.algorithm"] (默认值:'mpl2014')。

clip_pathPatchPathTransformedPath

设置剪裁路径。参见 set_clip_path

在版本 3.8 中添加。

data可索引对象,可选

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

备注

  1. contourf 与 MATLAB 版本不同,它不绘制多边形边缘。要绘制边缘,请通过调用 contour 添加线条等高线。

  2. contourf 填充顶部闭合的区间;也就是说,对于边界 z1z2,填充区域是

    z1 < Z <= z2
    

    除了最低的区间,它在两端都是闭合的(即包括最低值)。

  3. contourcontourf 使用 行进方块 算法计算等高线位置。更多信息可在 ContourPy documentation 中找到。

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

等高线角掩码

等高线角掩码

填充等高线演示

填充等高线演示

填充等高线图案

填充等高线图案

填充等高线和对数颜色刻度

填充等高线和对数颜色刻度

不规则间隔数据的等高线图

不规则间隔数据的等高线图

pcolormesh

pcolormesh

三角插值演示

三角插值演示

三维箱体表面图

三维箱体表面图

填充等高线

填充等高线

将填充等高线投影到图上

将填充等高线投影到图上

contourf(X, Y, Z)

contourf(X, Y, Z)