2016-11-08 185 views
0

我在這裏使用jupyter筆記本是內核信息K平均聚類顏色不變

Python 3.5.2 | Anaconda 4.1.1(64位)| (默認,2016年7月2日,17:53:06) [GCC 4.4.7 20120313(Red Hat 4.4.7-1)]

我正在使用k均值聚類。當我集羣時,唯一使用的顏色是藍色。這個問題目前並不是一個大問題,但我需要擴展它,所以顏色需要不同。我跟着一個教程,所以我不明白所有的代碼100%。代碼如下。

import numpy as np 
import matplotlib.pyplot as plt 
from matplotlib import style 
style.use("ggplot") 
from sklearn.cluster import KMeans 

x = [1,5,1.5,8,1,9] 
y = [2,8,1.8,8,.6,11] 

plt.scatter(x,y) 
plt.show() 

X = np.array([[1,2],[5,8],[1.5,1.8],[8,8],[1,.6],[9,11]]) 

kmeans = KMeans(n_clusters=2) 
kmeans.fit(X) 

centroids = kmeans.cluster_centers_ 
labels = kmeans.labels_ 

print(centroids) 
print(labels) 

colors = ['r','b','y','g','c','m'] 

for i in range(len(X)): 
    print("coordinate:",X[i], "label:", labels[i]) 
    plt.plot(X[i][0], X[i][1], colors[labels[i]], markersize = 10) 

plt.scatter(centroids[:, 0],centroids[:, 1], marker = "x", s=150, linewidths = 5, zorder = 10) 

plt.show() 

plt.scatter(x,y) 
plt.scatter(centroids[:, 0],centroids[:, 1], marker = "x", s=150, linewidths = 5, zorder = 10) 

plt.show() 

我覺得我的問題在於它的這一塊。

colors = ['r','b','y','g','c','m'] 

for i in range(len(X)): 
    print("coordinate:",X[i], "label:", labels[i]) 
    plt.plot(X[i][0], X[i][1], colors[labels[i]], markersize = 10) 

回答

1

我的確誤認了。我之前的解決方案不正確。我終於可以很好地看看標籤和質心的迴歸了,我認爲這應該可以滿足你的要求。

你可以給一個序列作爲顏色=參數一個參數,所以沒有必要對FOL環

colors = ['r','b','y','g','c','m'] 
plt.scatter(x,y, color=[colors[l_] for l_ in labels], label=labels) 
plt.scatter(centroids[:, 0],centroids[:, 1], color=[c for c in colors[:len(centroids)]], marker = "x", s=150, linewidths = 5, zorder = 10)