本文简要介绍 python 语言中 matplotlib.axes.Axes.contour
的用法。
-
绘制等高线。
调用签名:
contour([X, Y,] Z, [levels], **kwargs)
contour
和contourf
分别绘制轮廓线和填充轮廓。除非另有说明,两个版本的函数签名和返回值是相同的。- 参数:
- X, Y 类似数组,可选
-
Z
中值的坐标。X
和Y
必须都是 2D 且具有与Z
相同的形状(例如,通过numpy.meshgrid
创建),或者它们必须都是 1-D 使得len(X) == N
是Z
中的列数和len(Y) == M
是Z
中的行数。X
和Y
都必须单调排序。如果没有给出,它们被假定为整数索引,即
X = range(N)
,Y = range(M)
。 - Z (M,N) 类数组
-
绘制轮廓的高度值。 Color-mapping 由
cmap
、norm
、vmin
和vmax
控制。 - levels int 或类似数组,可选
-
确定等高线/区域的数量和位置。
如果 int
n
,请使用MaxNLocator
,它会尝试在Z
的最小和最大数值之间自动选择不超过n+1
"nice" 等高线级别。如果是类似数组,则在指定级别绘制等高线。这些值必须按升序排列。
- 返回:
- 其他参数:
- corner_mask 布尔值,默认值:
rcParams["contour.corner_mask"]
(默认值:True
) -
启用/禁用角掩蔽,仅当
Z
是掩蔽数组时才有效。如果False
,则任何接触遮罩点的四边形都会被遮罩。如果True
,只有最接近这些点的四边形的三角形角总是被屏蔽掉,其他包含三个未屏蔽点的三角形角像往常一样被轮廓化。 - colors 颜色字符串或颜色序列,可选
-
级别的颜色,即
contour
的线条和contourf
的区域。该序列按升序循环用于各个级别。如果序列比级别数短,则重复。
作为一种快捷方式,可以使用单一颜色字符串代替单元素列表,即
'red'
而不是['red']
以使用相同颜色为所有级别着色。此快捷方式仅适用于颜色字符串,不适用于其他指定颜色的方式。默认情况下(值
None
),将使用由cmap
指定的颜色图。 - alpha 浮点数,默认值:1
-
Alpha 混合值,介于 0(透明)和 1(不透明)之间。
- cmap str 或
Colormap
,默认值:rcParams["image.cmap"]
(默认值:'viridis'
) -
用于将标量数据映射到颜色的颜色图实例或注册的颜色图名称。
如果设置了
colors
,则忽略此参数。 - norm str 或
Normalize
,可选 -
在使用
cmap
映射到颜色之前,用于将标量数据缩放到 [0, 1] 范围的归一化方法。默认情况下,使用线性缩放,将最低值映射到 0,将最高值映射到 1。如果给出,这可以是以下之一:
-
Normalize
或其子类之一的实例(请参阅颜色图归一化)。 -
比例名称,即 "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'},默认值:无 -
通过指定
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] 的位置是像素的中心,而不是角落。如果origin
是None
,那么 (x0
,y0
) 是 Z[0, 0] 的位置,并且 (x1
,y1
) 是 Z[-1, - 1]。如果在对轮廓的调用中指定了
X
和Y
,则忽略此参数。 - locator ticker.Locator 子类,可选
-
如果未通过
levels
明确给出,则定位器用于确定轮廓级别。默认为MaxNLocator
。 - extend {'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()
- xunits, yunits 注册单位,可选
-
通过指定
matplotlib.units.ConversionInterface
的实例来覆盖轴单位。 - antialiased 布尔型,可选
-
启用抗锯齿,覆盖默认值。对于填充轮廓,默认值为
False
。对于线条轮廓,它取自rcParams["lines.antialiased"]
(默认值:True
)。 - nchunk int >= 0,可选
-
如果为 0,则不细分域。指定一个正整数以将域划分为
nchunk
通过nchunk
四边形的子域。分块减少了轮廓算法生成的多边形的最大长度,从而减少了传递到后端的渲染工作量,并且需要的 RAM 也略少。但是,它可以根据后端、antialiased
标志和alpha
的值在块边界引入渲染工件。 - linewidths 浮点数或类似数组,默认值:
rcParams["contour.linewidth"]
(默认值:None
) -
Only applies to
contour
。等高线的线宽。
如果是数字,则所有级别都将使用此线宽绘制。
如果是一个序列,将按照指定的顺序绘制升序级别的线宽。
如果没有,这将回退到
rcParams["lines.linewidth"]
(默认值:1.5
)。 - linestyles {
None
, 'solid', 'dashed', 'dashdot', 'dotted'},可选 -
Only applies to
contour
。如果
linestyles
为None
,则默认值为 'solid' ,除非线条是单色的。在这种情况下,负轮廓将从negative_linestyles
参数中获取线条样式。linestyles
也可以是上述字符串的可迭代对象,指定要使用的一组线型。如果这个迭代比轮廓级别的数量短,它将根据需要重复。 - negative_linestyles {
None
, 'solid', 'dashed', 'dashdot', 'dotted'},可选 -
Only applies to
contour
。如果
linestyles
是None
并且线条是单色的,则此参数指定负轮廓的线条样式。如果
negative_linestyles
是None
,则默认值取自rcParams["contour.negative_linestyles"]
。negative_linestyles
也可以是上述字符串的可迭代对象,指定要使用的一组线型。如果这个迭代比轮廓级别的数量短,它将根据需要重复。 - hatches 列表[str],可选
-
Only applies to
contourf
。用于填充区域的交叉影线图案列表。如果没有,则不会向轮廓添加阴影。阴影仅在 PostScript、PDF、SVG 和 Agg 后端中受支持。
- algorithm {'mpl2005'、'mpl2014'、'serial', 'threaded'},可选
-
使用哪种轮廓算法来计算轮廓线和多边形。这些算法在ContourPy中实现,请参阅ContourPy documentation以获取更多信息。
默认值取自
rcParams["contour.algorithm"]
(默认值:'mpl2014'
)。 - clip_path
Patch
或Path
或TransformedPath
-
设置剪辑路径。请参阅
set_clip_path
。3.8 版中的新函数。
- data 可索引对象,可选
-
如果给定,所有参数也接受一个字符串
s
,它被解释为data[s]
(除非这引发异常)。
- corner_mask 布尔值,默认值:
注意
-
contourf
与 MATLAB 版本的不同之处在于它不绘制多边形边。要绘制边,请通过调用contour
添加线条轮廓。 -
contourf
填充顶部闭合的区间;也就是说,对于边界z1
和z2
,填充区域为:z1 < Z <= z2
除了最低间隔,它在两边都是封闭的(即它包括最低值)。
-
contour
和contourf
使用 marching squares 算法来计算轮廓位置。更多信息可以在ContourPy documentation中找到。
用法
Axes.contour(*args, data=None, **kwargs)
相关用法
- Python matplotlib Axes.contourf用法及代码示例
- Python matplotlib Axes.get_legend_handles_labels用法及代码示例
- Python matplotlib Axes.hist用法及代码示例
- Python matplotlib Axes.step用法及代码示例
- Python matplotlib Axes.plot用法及代码示例
- Python matplotlib Axes.semilogx用法及代码示例
- Python matplotlib Axes.semilogy用法及代码示例
- Python matplotlib Axes.inset_axes用法及代码示例
- Python matplotlib Axes.axis用法及代码示例
- Python matplotlib Axes.barbs用法及代码示例
- Python matplotlib Axes.tripcolor用法及代码示例
- Python matplotlib Axes.set_prop_cycle用法及代码示例
- Python matplotlib Axes.axline用法及代码示例
- Python matplotlib Axes.tick_params用法及代码示例
- Python matplotlib Axes.axvspan用法及代码示例
- Python matplotlib Axes.tricontourf用法及代码示例
- Python matplotlib Axes.locator_params用法及代码示例
- Python matplotlib Axes.set_ylim用法及代码示例
- Python matplotlib Axes.loglog用法及代码示例
- Python matplotlib Axes.text用法及代码示例
- Python matplotlib Axes.boxplot用法及代码示例
- Python matplotlib Axes.triplot用法及代码示例
- Python matplotlib Axes.tricontour用法及代码示例
- Python matplotlib Axes.arrow用法及代码示例
- Python matplotlib Axes.set_xlim用法及代码示例
注:本文由纯净天空筛选整理自skytowner.com大神的英文原创作品 matplotlib.axes.Axes.contour。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。