我试图用与集群相关的颜色来绘制数据,如下所示:

但是,当我编写这段代码时,它显示如下:
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.
我如何使颜色动态变化(不需要键入6倍于c=['red','blue'...]的字符串数组)来获得每个集群的颜色?
如果您需要它自己测试它,projected_data变量等于
[[ 4 4 -6 3 1 -5]
[ 0 -3 2 -1 5 -4]]发布于 2022-04-12 22:46:56
它在等待一份名单。您可以在这里看到一个示例,其中我们使用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]

https://stackoverflow.com/questions/71849799
复制相似问题