我正在使用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')
我很感激帮助!
答案 0 :(得分:5)
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
答案 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'
)