contour 和 contourf 分别绘制等高线和填充等高线
matplotlib.pyplot.contourf([X, Y,] Z, [levels], **kwargs)
| X, Y | Z 中的值的坐标。
X 和 Y 必须都是二维的,具有与 Z 相同的形状(例如,通过 numpy.meshgrid 创建),或者它们必须都是一维的,这样 len(X) == N ,len(Y ) == M 是 Z 中的行数和列数。
X 和 Y 都必须单调排序。 |
| z | 绘制等高线的高度值。 |
| levels | 确定等高线/区域的数量和位置。
如果是整数n,请使用 MaxNLocator,它会尝试在 vmin 和 vmax 之间自动选择不超过 n+1 个”好“的等高级别。
如果是数组,则在指定级别绘制等高线。 这些值必须按升序排列。 |
| colors | 级别的颜色,即等高线轮廓的线条和等高线轮廓的区域。
该序列按升序循环用于各个级别。 如果序列比级别数短,则重复。
作为一种快捷方式,可以使用单一颜色字符串代替单元素列表,即“red”而不是 [“red”] 以用相同的颜色为所有级别着色。
默认情况下(值 None),将使用 cmap 指定的颜色图。 |
| cmap | ![]() |
| alpha | 透明度,0~1之间的数 |
| extend | 确定级别范围之外的值的轮廓着色。
如果“both”,则级别范围之外的值不着色。
如果是“min”、“max”或“both”,则为低于、高于或低于和高于水平范围的值着色。 低于 min(levels) 和高于 max(levels) 的值被映射到颜色图的低于/高于值。 |
- import numpy as np
- import matplotlib.pyplot as plt
- x = np.arange(1, 10)
- y = x.reshape(-1, 1)
- h = x * y
- print(x,'\n',y,'\n',h)
- '''
- [1 2 3 4 5 6 7 8 9]
- [[1]
- [2]
- [3]
- [4]
- [5]
- [6]
- [7]
- [8]
- [9]]
- [[ 1 2 3 4 5 6 7 8 9]
- [ 2 4 6 8 10 12 14 16 18]
- [ 3 6 9 12 15 18 21 24 27]
- [ 4 8 12 16 20 24 28 32 36]
- [ 5 10 15 20 25 30 35 40 45]
- [ 6 12 18 24 30 36 42 48 54]
- [ 7 14 21 28 35 42 49 56 63]
- [ 8 16 24 32 40 48 56 64 72]
- [ 9 18 27 36 45 54 63 72 81]]
- '''
- plt.contourf(x.reshape(-1),
- y.reshape(-1),
- h)

plt.contourf(x.reshape(-1), y.reshape(-1), h, levels=1)
plt.contourf(x.reshape(-1), y.reshape(-1), h, levels=[1,3,15,35])
plt.contourf(x.reshape(-1), y.reshape(-1), h, levels=[13,15,35], )
plt.contourf(x.reshape(-1), y.reshape(-1), h, levels=[13,15,35], extend='both')