matplotlib.pyplot.contour#

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

绘制等高线。

调用签名:

contour([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, vmaxfloat, 可选

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

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

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

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

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

  • 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 的 colormap 属性发生更改,它不会收到通知。因此,在修改 colormap 后需要显式调用 QuadContourSet.changed()。如果为 QuadContourSet 分配了 colorbar,则可以省略显式调用,因为它内部会调用 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 的实例来覆盖轴单位。

抗锯齿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]

注释

备注

这是 axes.Axes.contourpyplot 包装器

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

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

    z1 < Z <= z2
    

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

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

使用 matplotlib.pyplot.contour 的示例#

交互功能

Interactive functions