python等高线图平滑_用Matplotlib平滑等高线图中的数据
时间: 2023-12-04 11:26:32 浏览: 42
要在Matplotlib中平滑等高线图中的数据,可以使用`scipy.interpolate`模块中的`griddata`函数。该函数可以将不规则的数据点插值为规则网格上的数据点,从而使数据变得平滑。
以下是一个简单的示例,演示如何使用`griddata`函数平滑等高线图中的数据:
```python
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import griddata
# 创建一些随机数据点
x = np.random.rand(50)
y = np.random.rand(50)
z = np.sin(x * 2*np.pi) + np.cos(y * 2*np.pi)
# 创建网格
xi = np.linspace(0, 1, 100)
yi = np.linspace(0, 1, 100)
xi, yi = np.meshgrid(xi, yi)
# 插值数据点
zi = griddata((x, y), z, (xi, yi), method='cubic')
# 绘制等高线图
plt.contourf(xi, yi, zi, levels=20, cmap='cool')
plt.colorbar()
plt.show()
```
在这个示例中,我们首先创建了一些随机的数据点,并计算了它们的函数值。然后我们创建了一个规则网格,并使用`griddata`函数将数据点插值为网格上的数据点。最后,我们使用`contourf`函数绘制了等高线图。
请注意,`griddata`函数中的`method`参数可以设置为不同的插值方法,例如`linear`、`nearest`或`cubic`,以获得不同程度的平滑。在本示例中,我们使用了`cubic`插值方法。