python中contourf
时间: 2025-04-22 20:56:19 浏览: 29
### Python 中 `contourf` 函数的使用方法
在 Python 的 Matplotlib 库中,`plt.contourf()` 是一个用于创建等高线填充图的核心函数。该函数可以接受多个参数来定制图形的表现形式。
#### 基本语法
```python
import numpy as np
import matplotlib.pyplot as plt
def f(x, y):
return (1 + x**3 + y**5) * np.exp(-x**2 - y**2)
a = np.linspace(-3, 3)
X, Y = np.meshgrid(a, a) # 创建网格数据
Z = f(X, Y)
plt.figure(figsize=(8, 6))
CS = plt.contourf(X, Y, Z, cmap='viridis')
plt.colorbar(CS) # 添加颜色条
plt.title('Filled Contour Plot')
plt.xlabel('X axis')
plt.ylabel('Y axis')
plt.show()
```
这段代码展示了如何定义一个目标函数 \(f(x, y)\),并利用 `np.meshgrid` 将一维数组转换为适合绘图使用的二维矩阵结构。接着通过调用 `plt.contourf()` 来绘制带有颜色渐变效果的等高线图,并设置配色方案为 'viridis'[^2]。
#### 参数说明
- **X**, **Y**: 表示横纵坐标的数值范围,通常由 `np.meshgrid` 构建而成。
- **Z**: 对应于每一个 `(X,Y)` 点处的目标函数值。
- **cmap**: 配置所使用的色彩映射表(colormap),如 `'viridis'`, `'plasma'`, `'inferno'` 等预设选项。
- **levels**: 可选参数,指定等高线条数或具体位置;如果不给定,则自动计算合理数量的等级。
- **extend**: 控制超出上下限的颜色处理方式,默认不延伸颜色条。
#### 自定义颜色级别
对于更精细控制的情况,可以通过 `from_levels_and_colors` 方法来自定义不同级别的颜色:
```python
import matplotlib.colors as mcolors
# 定义自定义的颜色列表和对应的水平面
custom_cmap = ['blue', 'green', 'yellow', 'red']
levels = [-1., 0., .5, 1.]
norm = mcolors.BoundaryNorm(levels, ncolors=len(custom_cmap), clip=True)
CS_custom = plt.contourf(X, Y, Z, levels=levels, colors=custom_cmap, norm=norm)
plt.colorbar(CS_custom, extend='both') # 设置颜色条两端可延展
plt.title('Custom Levels and Colors Filled Contour Plot')
plt.show()
```
上述例子中,指定了特定的颜色区间及其关联的颜色,从而实现了更为个性化的视觉呈现[^5]。
阅读全文
相关推荐


















