2017-03-23 13 views
1

私は散布図を視覚化するためにプロットして(私が見渡すとポイント情報を得ることができるように)使用しています。私はKMeansを使用して作成したクラスタに異なる色を割り当てるのに問題があります。 (PLTなど)matplotlib.pyplotでこれをプロットすると、私は次のコードを使用します。散布図は色によってプロットされます。python

plt.scatter(restult[:,0], result[:,1], c=cluster_labels 

cluster_labelsがあること:

n_clusters = 3 
km = KMeans(n_clusters).fit(result) 
labels = km.labels_ 

そして、それは完全に正常に動作しますが、私は掃除機の情報を必要とします。

私はplotlyで、これまでで午前場所です:

trace = go.Scatter(
    x = result[:,0], 
    y = result[:,1], 
    mode = 'markers', 
    text = index, # I want to see the index of each point 
) 
data = [trace] 

# Plot and embed in ipython notebook! 
py.iplot(data, filename='basic-scatter') 

私は助けに感謝!

答えて

1
  • の虹彩データを使用してみましょうは、関数kmeansから
  • ラベルはちょうどmatplotlibの

from sklearn import datasets 
from sklearn import cluster 
import plotly 
plotly.offline.init_notebook_mode() 

iris = datasets.load_iris() 
kmeans = cluster.KMeans(n_clusters=3, 
         random_state=42).fit(iris.data[:,0:2]) 
data = [plotly.graph_objs.Scatter(x=iris.data[:,0], 
            y=iris.data[:,1], 
            mode='markers',  
            marker=dict(color=kmeans.labels_) 
           ) 
     ] 
plotly.offline.iplot(data) 

enter image description here

0
のように、色( marker=dict(color=kmeans.labels_)を)として使用されている設定しました

Maxmimilianの方法で展開してください - あなたがsklearnバージョン> = 0.17を使用しているなら、1d配列を渡すことは0.17で廃止されているので、配列を再形成する必要があります。ここで

は再形成と例です:

x = df[df.columns[1]] 
x = x.values.reshape(-1,1) 
y = df[df.columns[2]] 
y = y.values.reshape(-1,1) 

kmeans = cluster.KMeans(n_clusters = 3, random_state = 0).fit(x, y) 


trace1 = go.Scatter(
x = df[df.columns[1]], 
y = df[df.columns[2]], 
mode = 'markers', 
marker=dict(color=kmeans.labels_, 
      size = 7.5, 
      line = dict(width=2) 
      ), 
text = df.index, 
name='Actual' 
) 
関連する問題