matplotlib.axes.Axes.contour#

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

绘制等高线。

调用签名

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

参数 XYZ 仅接受位置参数。

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

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

Z 中各值的坐标。

XY 必须都是2D数组且与 Z 形状相同(例如通过 numpy.meshgrid 创建),或者它们必须都是1D数组,使得 len(X) == NZ 的列数,且 len(Y) == MZ 的行数。

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_maskbool, 默认值: rcParams["contour.corner_mask"] (默认值: True)

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

colors颜色颜色列表, 可选

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

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

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

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

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

alphafloat, 默认值: 1

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

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

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

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

normstr 或 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 的方向和精确位置。这仅在未给出 X, Y 时才相关。

  • 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 个四边形子域。分块减少了等高线算法生成的多边形的最大长度,从而减少了传递给后端进行渲染的工作负载,也略微减少了内存使用。但是,根据后端、antialiased 标志和 alpha 的值,它可能会在分块边界处引入渲染伪影。

linewidthsfloat 或 array-like, 默认值: 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 文档 以获取更多信息。

默认值取自 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 文档 中找到。

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

等高线角掩码

等高线角掩码

等高线演示

等高线演示

等高线图像

等高线图像

等高线标签演示

等高线标签演示

填充等高线演示

填充等高线演示

填充等高线图案

填充等高线图案

优化解空间的等高线图

优化解空间的等高线图

在二维图像中将透明度与颜色混合

在二维图像中将透明度与颜色混合

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

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

路径效果演示

路径效果演示

TickedStroke 路径效果

TickedStroke 路径效果

在三维空间中绘制等高线(级别)曲线

在三维空间中绘制等高线(级别)曲线

使用 extend3d 选项在三维空间中绘制等高线(级别)曲线

使用 extend3d 选项在三维空间中绘制等高线(级别)曲线

将等高线轮廓投影到图上

将等高线轮廓投影到图上

contour(X, Y, Z)

contour(X, Y, Z)