尝试绘制 KMeans 集群时出现颜色问题

Color problem while trying to plot KMeans clusters

我正在尝试使用与集群相关的颜色绘制我的数据,如下所示:

然而,当我写这段代码时,它显示如下:

model = KMeans(n_clusters = 2)
model.fit(projected_data)
labels = model.predict(projected_data)
plt.scatter(projected_data[0],projected_data[1],c='red')
plt.show()

在线查找,我发现将 c='red' 更改为 c=labels 可以解决问题,但是当我将代码更改为 plt.scatter(projected_data[0],projected_data[1],c=labels) 时,它会给我这个错误:

'c' argument has 2 elements, which is inconsistent with 'x' and 'y' with size 6.

如何使颜色动态变化(不必像 c=['red','blue'...] 那样键入字符串数组 6 次)来为每个簇获取颜色?

如果需要自己测试,projected_data变量等于

[[ 4  4 -6  3  1 -5]
 [ 0 -3  2 -1  5 -4]]

它需要一个列表。您可以在此处查看我们使用 kmeans.labels_ 作为颜色参数的示例。您可以更改调色板或将簇标签映射到所需颜色的字符串。

from sklearn.cluster import KMeans
import numpy as np
X = np.array([[1, 2], [1, 4], [1, 0],
              [10, 2], [10, 4], [10, 0]])
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)

x,y = X.T

print(kmeans.labels_)
plt.scatter(x,y, c=kmeans.labels_);

输出

[1 1 1 0 0 0]