我在轮廓绘图方面遇到了困难。轮廓线在我的情节中变得疯狂,我不知道为什么。您可以在后台看到一些数据点。
print positive_train_data.shape
#returns (1131,2)
def GaMM():
GaussMM = GMM(n_components=3)
GaussMM.fit(positive_train_data)
X, Y = np.meshgrid(positive_train_data[:, 0], positive_train_data[:, 1])
XX = np.array([X.ravel(), Y.ravel()]).T
Z = -GaussMM.score(XX)
Z = Z.reshape(X.shape)
CS = plt.contour(X, Y, Z)
CB = plt.colorbar(CS, shrink=0.8, extend='both')
plt.scatter(positive_train_data[:, 0], positive_train_data[:, 1])
GaMM()
答案 0 :(得分:1)
数据似乎完全无序。这类似于左图中的情况。
这是从这个问题的一个答案中得出的:
Why does pyplot.contour() require Z to be a 2D array?
解决方案是使用tricontour
代替contour
,如右图所示。
另一种选择是在2D网格上插入数据,例如使用matplotlib.mlab.griddata
进一步建议阅读: