Как мне пометить точки в моем кластере, используя python
У меня есть следующий кластер с использованием Python, и я хочу пометить точки внутри кластера. Я не уверен, как это сделать.
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
a = [262,562,733,335,544,259,682,423,769,444]
b = [19516842,16927322,14067158,12541731,10993709,10851871,10557379,10200356,10198000,9470625]
P = [list(item) for item in zip(a,b)]
kmeans = KMeans(n_clusters=2)
kmeans.fit(P)
labels = kmeans.labels_
colors = ["g.","r."]
for i in range(len(P)):
print("coordinate:",P[i], "label:", labels[i])
plt.plot(P[i][0], P[i][1], colors[labels[i]], markersize = 10)
plt.show()
1 ответ
Вот как я это делаю:
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
a = [262,562,733,335,544,259,682,423,769,444]
b = [19516842,16927322,14067158,12541731,10993709,10851871,10557379,10200356,10198000,9470625]
P = [list(item) for item in zip(a,b)]
kmeans = KMeans(n_clusters=2)
kmeans.fit(P)
labels = kmeans.labels_
colors = ["g.","r."]
for i in range(len(P)):
print("coordinate:",P[i], "label:", labels[i])
plt.plot(P[i][0], P[i][1], colors[labels[i]], markersize = 10)
for label, x, y in zip(labels, a,b):
plt.annotate(label, xy = (x, y), xytext = (-5, 5),textcoords = 'offset points', ha = 'right', va = 'bottom')
#Fancy
#plt.annotate(label, xy = (x, y), xytext = (-5, 5),textcoords = 'offset points', ha = 'right', va = 'bottom',bbox = dict(boxstyle = 'round,pad=0.5', fc = 'yellow', alpha = 0.5),arrowprops = dict(arrowstyle = '->', connectionstyle = 'arc3,rad=0'))
plt.show()