web-dev-qa-db-fra.com

Étiqueter les données lors d'un nuage de points en python

Je veux étiqueter chaque point que je trace en python, et je n'ai pas trouvé le moyen de le faire.

En supposant que j'ai deux listes d'éléments n appelées a et b, je les imprime de cette façon:

    plt.figure()
    plt.grid()
    plt.plot(a , b , 'bo')
    plt.show()

Je veux étiqueter chaque point avec "Variable k" avec k allant de 1 à n évidemment. Merci pour votre temps

4
apaillarse

Voici la meilleure façon de le faire que j'ai trouvée:

plt.figure()
plt.scatter(a,b)
labels = ['Variable {0}'.format(i+1) for i in range(n)]
for i in range (0,n):
    xy=(a[i],b[i])
    plt.annotate(labels[i],xy)
plt.plot()

Plus d'infos: Matplotlib: Comment mettre des tags individuels pour un nuage de points

0
apaillarse

Vous pouvez utiliser le paramètre de tracé label

x = np.random.random(3)
y = np.random.random(3)
z = np.arange(3)
colors = ["red", "yellow", "blue"]
c = ["ro", "yo", "bo"]

for i in z:
    plt.plot(x[i], y[i], c[i], label=colors[i] + ' ' + str(i))
plt.legend()

 enter image description here

1
Lucas