Bonjour,
j'ai un souci mon code fonctionne ^^, mais je ne comprends pas la solution trouvée, obtenue par erreur.
Je m'explique, je trace deux nuages de points et une droite avec matplotlib, jusque-là tout va bien. Mon souci commence avec le désir de changer l'ordre des entrées de la légende qui par défaut me met le 'plt.plot' en premier quel que soit l'ordre d'appel des tracés, contrairement au scatter, qui change en fonction de l'ordre d'appel.
Bon je farfouille les docs de matplotlib, fait ma popote d'erreurs qui m'envoient ici : https://matplotlib.org/tutorials/int...legend-handles. À partir de là, je mets les tracés dans des variables t1, t2, t3 et en suivant ce que dit le tuto de la documentation j'écris :
et la j'ai cette erreur "TypeError: cannot unpack non-iterable PathCollection object" qui point sur le label du t2. En gros je crois qu'il n'est pas d'accord avec ce que je lui demande.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 t1, =plt.plot(...) t2, =plt.scatter(...) t3, =plt.scatter(...) plt.legend([t2, t3, t1], ['Données up', 'Données down', 'Régression'])
puis je fini par lui dire
et la, ba ça marche... Quand il n'y a que des plt.plot ou plt.scatter, l'ordre des appels des tracés donne l'ordre des entrées de la légende mais quand on mélange les deux....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 t1, =plt.plot(...) t2 =plt.scatter(...) t3 =plt.scatter(...) plt.legend([t2, t3, t, ['Donnéeses up', 'Données down', 'Régression'])
Pourquoi dois-je mettre une "," qu'au niveau du plt.plot et pas au niveau des plt.scatter. Sauf erreur de ma part je n'ai pas dans les docs me permettant de comprendre cela.
La syntaxe fonction mais est-ce une erreur qui fonctionne ou est-ce la solution ?
merci
Partager