尝试绘制 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]
我正在尝试使用与集群相关的颜色绘制我的数据,如下所示:
然而,当我写这段代码时,它显示如下:
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]