核密度估计python代码3D波浪图
时间: 2023-09-04 07:16:31 浏览: 182
以下是一个简单的核密度估计的Python代码,可以生成3D波浪图:
```python
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from scipy.stats import kde
# 生成数据
x = np.random.normal(size=500)
y = np.random.normal(size=500)
z = np.random.normal(size=500)
# 计算核密度估计
density = kde.gaussian_kde([x, y, z])
xgrid, ygrid, zgrid = np.mgrid[min(x):max(x):100j, min(y):max(y):100j, min(z):max(z):100j]
coords = np.vstack([item.ravel() for item in [xgrid, ygrid, zgrid]])
density_values = density(coords).reshape(xgrid.shape)
# 绘制3D波浪图
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(xgrid, ygrid, zgrid, rstride=1, cstride=1, facecolors=plt.cm.viridis(density_values))
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
```
这段代码首先生成了三个正态分布的随机变量(x、y和z)。然后,使用`gaussian_kde`函数计算核密度估计值,并将其存储在`density_values`中。最后,使用`plot_surface`函数将三维图形绘制出来。
阅读全文