Python 绘制多变量正态分布形状
我有一组3D数据点,当绘制时形成一种多元高斯形状,如图所示 然而,我需要一个漂亮平滑的等高线图,理想情况下,它可以包含先前的高斯形状信息 我不完全确定从哪里开始,因为我的点不遵循正态分布,它们只有高斯形状,因此我无法应用高斯混合模型来确定分布。对吗 有办法做到这一点吗? 理想情况下,我希望得到一个与此类似的图: 绘制等高线的代码:Python 绘制多变量正态分布形状,python,numpy,matplotlib,gaussian,data-fitting,Python,Numpy,Matplotlib,Gaussian,Data Fitting,我有一组3D数据点,当绘制时形成一种多元高斯形状,如图所示 然而,我需要一个漂亮平滑的等高线图,理想情况下,它可以包含先前的高斯形状信息 我不完全确定从哪里开始,因为我的点不遵循正态分布,它们只有高斯形状,因此我无法应用高斯混合模型来确定分布。对吗 有办法做到这一点吗? 理想情况下,我希望得到一个与此类似的图: 绘制等高线的代码: import matplotlib.pyplot as plt import numpy as np from matplotlib import cm fro
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm
from scipy.interpolate import griddata
fig = plt.figure()
ax = fig.add_subplot(212)
ax.set_title("NN-interpolated contour")
# Prep X-Y grid
xi = np.linspace(x.min(), x.max(), (len(z)))
yi = np.linspace(y.min(), y.max(), (len(z)))
# Interpolate using nearest neighbour
zi = griddata((x, y), z, (xi[None, :], yi[:, None]), method='nearest')
xig, yig = np.meshgrid(xi, yi)
# Plot
surf = ax.contourf(xig, yig, zi, cmap=cm.summer)
fig.colorbar(surf)
plt.show()
编辑:
这是三次插值的绘图:
根据我从中看到的,您可能希望使用
cubic
方法调用griddata
什么是x
,y
和z
?代码看起来是正确的。所以,只要你不提供问题的答案,就无法提供帮助。@Adonis我用立方体图编辑了这篇文章(如果“最近的”不起作用,为什么“立方体”突然起作用?),也就是说,请看我的第一条评论。@ImportanceOfBeingErnest x,y,z是传感器生成的点。(x,y)是地面上的位置,z是在该位置产生的声音的振幅。因此,您可以看到有很多噪音,因为由于产生声音的传感器的死区时间,声音并不总是被记录下来。