有几种方法可以在3D中可视化结果
最简单的方法是在用于生成高斯KDE的点上对其求值,然后根据密度估计值对点上色。
例如:import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
mu=np.array([1,10,20])
sigma=np.matrix([[4,10,0],[10,25,0],[0,0,100]])
data=np.random.multivariate_normal(mu,sigma,1000)
values = data.T
kde = stats.gaussian_kde(values)
density = kde(values)
fig, ax = plt.subplots(subplot_kw=dict(projection='3d'))
x, y, z = values
ax.scatter(x, y, z, c=density)
plt.show()
如果你有一个更复杂的分布(也就是说,不是所有的分布都在一个平面上),那么你可能需要在一个规则的三维网格上计算KDE,并可视化体积的等值面(三维轮廓)。最容易使用Mayavi进行可视化:import numpy as np
from scipy import stats
from mayavi import mlab
mu=np.ar