contourf区域填充时,如何只填充等高线内的区域,而等高线外的区域留白
时间: 2024-04-14 08:26:05 浏览: 44
您可以使用`contour`函数绘制等高线,然后使用`contourf`函数填充等高线内的区域。要留白等高线外的区域,您可以使用`levels`参数来指定绘制的等高线的范围,然后将较高和较低的等高线设置为透明。
以下是一个示例代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成数据
x = np.linspace(-2, 2, 100)
y = np.linspace(-2, 2, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(X) + np.cos(Y)
# 绘制等高线
levels = np.linspace(-1.5, 1.5, 20) # 设置等高线范围
plt.contour(X, Y, Z, levels=levels, colors='k') # 绘制黑色等高线
# 填充等高线内的区域
plt.contourf(X, Y, Z, levels=levels, cmap='coolwarm') # 使用'coolwarm'颜色映射填充
# 设置等高线外的区域为透明
plt.contourf(X, Y, Z, levels=[np.min(levels), np.max(levels)], colors='none')
# 添加颜色条
plt.colorbar()
plt.show()
```
这段代码会绘制等高线图,并且只填充等高线内的区域,而等高线外的区域会留白。您可以根据需要调整`levels`参数的范围来控制填充的区域。
阅读全文