matplotlib.pyplot.contourf#
- matplotlib.pyplot.contourf(*args, data=None, **kwargs)[源代码][源代码]#
绘制填充等高线。
调用签名:
contourf([X, Y,] Z, /, [levels], **kwargs)
参数 X, Y, Z 仅支持位置参数。
contour
和contourf
分别绘制等高线和填充等高线。除了特别注明的情况外,两者的函数签名和返回值是相同的。- 参数:
- X, Y类似数组,可选
Z 中值的坐标。
X 和 Y 必须都是与 Z 形状相同的二维数组(例如通过
numpy.meshgrid
创建),或者它们都必须是长度为len(X) == N
的一维数组,其中 N 是 Z 的列数,len(Y) == M
是 Z 的行数。X 和 Y 都必须单调有序。
如果没有给出,它们被假定为整数索引,即
X = range(N)
,Y = range(M)
。- Z(M, N) 数组类
绘制等高线的海拔值。颜色映射由 cmap、norm、vmin 和 vmax 控制。
- 级别整数或类数组,可选
确定等高线/区域的数目和位置。
如果是一个整数 n,使用
MaxNLocator
,它会尝试在 Z 的最小值和最大值之间自动选择不超过 n+1 个“好”的等高线级别。如果是类数组,则在指定级别绘制等高线。值必须按递增顺序排列。
- 返回:
- 其他参数:
- corner_mask : bool, 默认值:
rcParams["contour.corner_mask"]
(default:True
)bool, 默认值: 启用/禁用角点掩码,这仅在 Z 是掩码数组时有效。如果
False
,任何接触掩码点的四边形都会被掩码。如果True
,只有最接近这些点的四边形的三角形角点总是被掩码,其他包含三个未掩码点的三角形角点则按常规进行轮廓处理。- 颜色 : color 或 color 列表, 可选颜色或颜色列表,可选
各级别的颜色,即
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。
如果提供,这可以是以下之一:
一个刻度名称,即 "linear"、"log"、"symlog"、"logit" 等之一。要获取可用刻度的列表,请调用
matplotlib.scale.get_scale_names()
。在这种情况下,会动态生成并实例化一个合适的Normalize
子类。
如果设置了 colors ,则忽略此参数。
- vmin, vmax浮点数,可选
在使用标量数据且未明确指定 norm 时,vmin 和 vmax 定义了颜色映射覆盖的数据范围。默认情况下,颜色映射覆盖所提供数据的完整值范围。当给定 norm 实例时,使用 vmin/vmax 是错误的(但使用
str
norm 名称与 vmin/vmax 一起是可接受的)。如果未给出 vmin 或 vmax ,默认的颜色缩放基于 levels 。
如果设置了 colors ,则忽略此参数。
- origin : {None, 'upper', 'lower', 'image'}, 默认: None
toctree
是一个 reStructuredText 指令 ,这是一个非常多功能的标记。指令可以有参数、选项和内容。 通过指定
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"]
(default:'upper'
) 的值。
- 范围(x0, x1, y0, y1), 可选
如果 origin 不是 None,那么 extent 的解释与
imshow
中相同:它给出了外部像素边界。在这种情况下,Z[0, 0] 的位置是像素的中心,而不是角落。如果 origin 是 None,那么 (x0, y0) 是 Z[0, 0] 的位置,而 (x1, y1) 是 Z[-1, -1] 的位置。如果在调用 contour 时指定了 X 和 Y,则忽略此参数。
- 定位器ticker.Locator 子类,可选
如果没有通过 levels 明确指定等高线级别,则使用定位器来确定等高线级别。默认为
MaxNLocator
。- 扩展{'neither', 'both', 'min', 'max'}, 默认: 'neither'
确定超出 levels 范围的值的
contourf
着色。如果为 'neither',超出 levels 范围的值不会被着色。如果为 'min'、'max' 或 'both',则对低于、高于或低于和高于 levels 范围的值进行着色。
低于
min(levels)
和高于max(levels)
的值会被映射到Colormap
的欠/超值。注意,大多数颜色映射默认没有为这些值分配专用颜色,因此超值和欠值是颜色映射的边缘值。你可能希望使用Colormap.set_under
和Colormap.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,则不对域进行细分。指定一个正整数,将域划分为 nchunk 乘 nchunk 的四边形子域。分块减少了轮廓算法生成的多边形的最大长度,从而减少了传递给后端的渲染工作量,并且需要的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
。如果 linestyles 是 None,默认值为 'solid',除非线条是单色的。在这种情况下,负轮廓将改为从 negative_linestyles 参数中获取其线条样式。
linestyles 也可以是一个包含上述字符串的可迭代对象,用于指定一组要使用的线型。如果这个可迭代对象的长度小于等高线层级的数量,它将根据需要重复使用。
- negative_linestyles
toctree
是一个 reStructuredText 指令 ,这是一个非常多功能的标记。指令可以有参数、选项和内容。 仅适用于
contour
。如果 linestyles 为 None 且线条为单色,此参数指定负轮廓的线条样式。
如果 negative_linestyles 是 None,则默认值取自
rcParams["contour.negative_linestyles"]
。negative_linestyles 也可以是一个包含上述字符串的可迭代对象,用于指定一组要使用的线型。如果这个可迭代对象的长度小于等高线级别的数量,它将根据需要重复。
- hatcheslist[str], 可选
仅适用于
contourf
。用于填充区域的一组交叉阴影图案。如果为 None,则不会向等高线添加阴影。
- 算法{'mpl2005', 'mpl2014', 'serial', 'threaded'}, 可选
用于计算等高线和多边形的轮廓算法。这些算法在 ContourPy 中实现,更多信息请参阅 ContourPy 文档。
默认值取自
rcParams["contour.algorithm"]
(default:'mpl2014'
)。- clip_path :
Patch
或Path
或TransformedPath
补丁或路径或变换路径 设置剪切路径。参见
set_clip_path
。Added in version 3.8.
- 数据可索引对象,可选
如果提供,所有参数也接受一个字符串
s
,如果s
是data
中的一个键,则解释为data[s]
。
- corner_mask : bool, 默认值:
注释
备注
这是
axes.Axes.contourf
的 pyplot 包装器。contourf
与 MATLAB 版本的不同之处在于它不绘制多边形边缘。要绘制边缘,请使用contour
调用添加线轮廓。contourf
填充顶部闭合的区间;也就是说,对于边界 z1 和 z2,填充的区域是:z1 < Z <= z2
除了最低区间外,其他区间在两边都是闭合的(即包含最低值)。
contour
和contourf
使用 marching squares 算法来计算等高线位置。更多信息可以在 ContourPy 文档 中找到。