2017-06-22 2 views
-1

J'essaye de tracer un graphe fictif avec plusieurs lignes et une légende dans laquelle chacune des valeurs de la liste "étiquette" sera affichée une fois pour chacune des lignes correspondantes.comment afficher la légende en itérant sur la liste des valeurs

Dans le MWE suivant, chaque ligne de la légende a toutes les valeurs de la liste "label" et je veux parcourir la liste.

y = np.random.rand(1,300).reshape(50,6) 
x = np.repeat(np.array([range(1,7)]), 50, axis=0) 
label = [70, 50, 30, 10, 30, 50] 

plt.figure() 
plt.plot(x, y, marker='+', label=label) 
plt.legend() 
plt.show() 

Si je tente de faire une boucle sur la liste, je reçois des valeurs uniques pour la légende, mais chaque valeur répétée plusieurs fois et je ne veux pas répéter les valeurs:

y = np.random.rand(1,300).reshape(50,6) 
x = np.repeat(np.array([range(1,7)]), 50, axis=0) 
label = [70, 50, 30, 10, 30, 50] 

plt.figure() 
for i in label: 
    plt.plot(x, y, marker='+', label='{i}'.format(i=i)) 
plt.legend() 
plt.show() 

Tous l'aide sera appréciée. Merci d'avance.

+0

Pouvez-vous dire comment la légende explicite devrait ressembler et comment les marqueurs affichés (et leur couleur) doit se rapporter aux 36 lignes? Voulez-vous réellement avoir 36 lignes dans l'intrigue (car il semble qu'ils sont les mêmes)? Je vous suggère de montrer le graphique avec les lignes que vous voulez et ensuite décrire ce que vous voulez montrer dans la légende. – ImportanceOfBeingErnest

Répondre

1

essayez ceci:

p = plt.plot(x, y, marker='+') 
plt.legend(p, label) 
+0

Merci l'homme! Cela a fait l'affaire :) –