我有一组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()
修改
这是具有三次插值的图: