Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 绘制多变量正态分布形状_Python_Numpy_Matplotlib_Gaussian_Data Fitting - Fatal编程技术网

Python 绘制多变量正态分布形状

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

我有一组3D数据点,当绘制时形成一种多元高斯形状,如图所示

然而,我需要一个漂亮平滑的等高线图,理想情况下,它可以包含先前的高斯形状信息

我不完全确定从哪里开始,因为我的点不遵循正态分布,它们只有高斯形状,因此我无法应用高斯混合模型来确定分布。对吗

有办法做到这一点吗?

理想情况下,我希望得到一个与此类似的图:

绘制等高线的代码:

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是在该位置产生的声音的振幅。因此,您可以看到有很多噪音,因为由于产生声音的传感器的死区时间,声音并不总是被记录下来。