gpt4 book ai didi

python - 使用 Python 中的聚类进行 ScatterPlot 着色和标记

转载 作者:行者123 更新时间:2023-11-28 18:19:25 24 4
gpt4 key购买 nike

我正在尝试对我的结果进行聚类。我使用 matplotlib 进入 3 个集群以及标签名称:

Y_sklearn - 包含 X 和 Y 坐标的二维数组

ent_names - 包含标签名称

我有一个逻辑来显示散点图如下:

from sklearn.cluster import KMeans
model = KMeans(n_clusters = 3)
model.fit(Y_sklearn)
plt.scatter(Y_sklearn[:,0],Y_sklearn[:,1], c=model.labels_);
plt.show()

现在上面的代码确实显示了散点图,如下所示: enter image description here

但是,除了这个图,我还想显示标签名称。我试过这样的东西,但它只显示一种颜色:

with plt.style.context('seaborn-whitegrid'):
plt.figure(figsize=(8, 6))
for lab, col in zip(ent_names,
model.labels_):
plt.scatter(Y_sklearn[y==lab, 0],
Y_sklearn[y==lab, 1],
label=lab,
c=model.labels_)
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.legend(loc='lower center')
plt.tight_layout()
plt.show()

最佳答案

您必须在相同的坐标轴 ax 中绘制才能将散点图放在一起,如本例所示:

import matplotlib.pyplot as plt
import numpy as np

XY = np.random.rand(10,2,3)

labels = ['test1', 'test2', 'test3']
colors = ['r','b','g']

with plt.style.context('seaborn-whitegrid'):
plt.figure(figsize=(8, 6))
ax = plt.gca()

i=0
for lab,col in zip(labels, colors):
ax.scatter(XY[:,0,i],XY[:,1,i],label=lab, c=col)
i+=1

plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')
plt.legend(loc='lower center')
plt.tight_layout()
plt.show()

enter image description here

关于python - 使用 Python 中的聚类进行 ScatterPlot 着色和标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46195547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com