散点图通过彩色图形分离聚类python

时间:2017-03-23 20:59:00

标签: python-2.7 cluster-computing plotly scatter-plot

我正在使用plotly(当我翻过来时能够得到点信息)来可视化我的聚类散点图。我无法为使用KMeans生成的集群分配不同的颜色。当在matplotlib.pyplot(作为plt)中绘制它时,我使用以下代码:

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

cluster_labels:

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

它完全正常,但我需要胡佛信息。

这是我到目前为止的情节:

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

我很感激帮助!

2 个答案:

答案 0 :(得分:5)

  • 让我们使用虹膜数据集
  • 来自kmeans的标签用作颜色(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) ),就像在matplotlib中一样
/^[\x{0}-\x{1b}]*$/u

enter image description here

答案 1 :(得分:-1)

只是扩展Maxmimilian的方法 - 如果您使用sklearn版本> = 0.17,那么您需要重塑阵列,因为在0.17中不推荐传递1d数组。

以下是重塑的例子:

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