matplotlib.axes.Axes.contour#

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

绘制等高线。

调用签名:

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

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

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

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

Z 中值的坐标。

XY 必须都是与 Z 形状相同的二维数组(例如通过 numpy.meshgrid 创建),或者它们都必须是一维的,使得 len(X) == 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 的 under/over 值。请注意,大多数颜色映射默认情况下没有为这些值分配专用颜色,因此 over 和 under 值是颜色映射的边缘值。您可能希望使用 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.contour 的示例#

轮廓角掩码

Contour corner mask

等高线演示

Contour Demo

等高线图像

Contour image

等高线标签演示

Contour Label Demo

等高线填充演示

Contourf demo

等值线填充图案

Contourf hatching

优化解决方案空间的轮廓

Contouring the solution space of optimizations

在2D图像中混合透明度和颜色

Blend transparency with color in 2D images

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

Contour plot of irregularly spaced data

路径效果演示

Patheffect Demo

TickedStroke 路径效果

TickedStroke patheffect

在3D中绘制等高线(水平)曲线

Plot contour (level) curves in 3D

使用 extend3d 选项在 3D 中绘制等高线(等值线)曲线

Plot contour (level) curves in 3D using the extend3d option

将项目轮廓剖面投影到图表上

Project contour profiles onto a graph

contour(X, Y, Z)

contour(X, Y, Z)