2017-08-02 98 views
0

我在輪廓陰謀方面遇到困難。等高線在我的情節中變得瘋狂,我不知道爲什麼。您可以在後臺看到一些數據點。糟糕的輪廓線陰謀

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() 

enter image description here

回答

1

的數據似乎是完全無序的。這與下面左圖中發生的情況類似。

enter image description here

這是從一個答案帶到了這個問題: Why does pyplot.contour() require Z to be a 2D array? 和解決方案是使用tricontour代替contour如右圖。

另一種選擇是在2D網格上插入數據,例如,使用matplotlib.mlab.griddata

還建議閱讀是: