matplotlib.axes.Axes.contourf#

Axes.contourf(*args, data=None, **kwargs)[源代码][源代码]#

绘制填充等高线。

调用签名:

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

参数 X, Y, Z 是仅位置的。

contourcontourf 分别绘制等高线和填充等高线。除了特别说明外,两者的函数签名和返回值是相同的。

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

Z 中值的坐标。

XY 必须都是与 Z 形状相同的二维数组(例如通过 numpy.meshgrid 创建),或者它们都必须是长度为 len(X) == N 的一维数组,其中 NZ 的列数,而 len(Y) == MZ 的行数。

XY 必须都是单调有序的。

如果没有给出,它们被假定为整数索引,即 X = range(N), Y = range(M)

Z(M, N) 数组类

绘制等高线的海拔值。颜色映射由 cmapnormvminvmax 控制。

级别int 或类数组,可选

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

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

如果类似数组,则在指定级别绘制等高线。值必须按递增顺序排列。

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

启用/禁用角点掩码,这仅在 Z 是掩码数组时有效。如果 False,任何接触掩码点的四边形都会被掩码。如果 True,只有最接近这些点的四边形的三角形角点总是被掩码,其他由三个未掩码点组成的三角形角点则照常绘制等高线。

颜色 : colorcolor 列表, 可选颜色或颜色列表,可选

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

序列按升序循环用于各个级别。如果序列比级别数短,则重复该序列。

作为一种快捷方式,可以使用单一颜色代替单元素列表,即使用 'red' 代替 ['red'] 来为所有级别使用相同的颜色。

在 3.10 版本发生变更: 以前必须将单一颜色表示为字符串,但现在可以传递任何有效的颜色格式。

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

alphafloat, 默认值: 1

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

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

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

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

norm : str 或 Normalize, 可选str 或

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

如果提供,这可以是以下之一:

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

vmin, vmax浮点数,可选

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

如果未指定 vminvmax ,默认的颜色缩放基于 levels

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

origin : {None, 'upper', 'lower', 'image'}, 默认: Nonetoctree 是一个 reStructuredText 指令 ,这是一个非常多功能的标记。指令可以有参数、选项和内容。

通过指定 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"] (default: 'upper') 的值。

范围(x0, x1, y0, y1), 可选

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

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

定位器ticker.Locator 子类,可选

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

扩展{'neither', 'both', 'min', 'max'}, 默认: 'neither'

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

如果为 'neither',则 levels 范围外的值不会着色。如果为 'min'、'max' 或 'both',则对低于、高于或低于和高于 levels 范围的值进行着色。

低于 min(levels) 和高于 max(levels) 的值会被映射到 Colormap 的欠值/超值。注意,大多数色图默认没有为这些值分配专用颜色,因此超值和欠值是色图的边缘值。你可能需要使用 Colormap.set_underColormap.set_over 显式设置这些值。

备注

如果现有 QuadContourSet 的颜色映射属性发生更改,它不会收到通知。因此,在修改颜色映射后,需要显式调用 QuadContourSet.changed()。如果为 QuadContourSet 分配了颜色条,则可以省略显式调用,因为它内部会调用 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()
x单位, y单位注册单位,可选

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

抗锯齿bool, 可选

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

nchunkint >= 0, 可选

如果为0,则不对域进行细分。指定一个正整数,将域划分为 nchunknchunk 的四边形子域。分块减少了轮廓算法生成的多边形的最大长度,从而减少了传递给后端的渲染工作量,并且需要稍微少一些的RAM。然而,根据后端、antialiased 标志和 alpha 值,它可能会在块边界引入渲染伪影。

linewidths : float 或 array-like, 默认值: rcParams["contour.linewidth"] (default: None)浮点数或类似数组的对象,默认值:

仅适用于 contour

等高线的线宽。

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

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

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

linestyles : {None, 'solid', 'dashed', 'dashdot', 'dotted'}, 可选toctree 是一个 reStructuredText 指令 ,这是一个非常多功能的标记。指令可以有参数、选项和内容。

仅适用于 contour

如果 linestylesNone,默认值为 'solid',除非线条是单色的。在这种情况下,负轮廓将改为从 negative_linestyles 参数中获取其线条样式。

linestyles 也可以是一个上述字符串的可迭代对象,指定一组要使用的线条样式。如果这个可迭代对象的长度小于等高线层级的数量,它将根据需要重复使用。

negative_linestylestoctree 是一个 reStructuredText 指令 ,这是一个非常多功能的标记。指令可以有参数、选项和内容。

仅适用于 contour

如果 linestylesNone 且线条为单色,此参数指定负轮廓的线条样式。

如果 negative_linestylesNone,则默认值取自 rcParams["contour.negative_linestyles"]

negative_linestyles 也可以是一个包含上述字符串的可迭代对象,用于指定一组要使用的线型。如果这个可迭代对象的长度小于等高线层级的数量,它将根据需要重复使用。

hatcheslist[str], 可选

仅适用于 contourf

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

算法{'mpl2005', 'mpl2014', 'serial', 'threaded'}, 可选

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

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

clip_path : PatchPathTransformedPath补丁或路径或变换路径

设置剪切路径。参见 set_clip_path

Added in version 3.8.

数据可索引对象,可选

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

注释

  1. contourf 与 MATLAB 版本的不同之处在于它不绘制多边形边缘。要绘制边缘,请使用 contour 调用添加线条轮廓。

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

    z1 < Z <= z2
    

    除了最低区间外,其他区间在两边都是闭合的(即包含最低值)。

  3. contourcontourf 使用 marching squares 算法来计算等高线位置。更多信息可以在 ContourPy 文档 中找到。

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

轮廓角掩码

Contour corner mask

等高线填充演示

Contourf demo

等值线填充图案

Contourf hatching

Contourf 和 对数颜色标度

Contourf and log color scale

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

Contour plot of irregularly spaced data

pcolormesh

pcolormesh

Triinterp 演示

Triinterp Demo

3D 盒子表面图

3D box surface plot

填充等高线

Filled contours

将项目填充等高线到图表上

Project filled contour onto a graph

contourf(X, Y, Z)

contourf(X, Y, Z)