Pour ajouter une légende à un tracé matplotlib, on exécute simplement legend()
.
Comment supprimer une légende d'un tracé?
(Le plus proche legend([])
auquel je suis arrivé est de courir pour vider la légende des données. Mais cela laisse un rectangle blanc laid dans le coin supérieur droit.)
matplotlib
legend
Olivier Verdier
la source
la source
ax.get_legend().remove()
solution n'a pas fonctionné dans mon cas, tandis que la deuxième solution (legend = ax.legend() ... legend.remove()
) a fonctionné. peut-être parce queax
c'était unAxesSubplot
dans mon cas?Si vous souhaitez tracer une trame de données Pandas et supprimer la légende, ajoutez legend = None comme paramètre à la commande plot.
la source
Vous pouvez utiliser la
set_visible
méthode de la légende :Ceci est basé sur une réponse qui m'a été fournie en réponse à une question similaire que j'avais eue il y a quelque temps ici
(Merci pour cette réponse Jouni - Je suis désolé de ne pas avoir pu marquer la question comme réponse ... peut-être que quelqu'un qui a l'autorité peut le faire pour moi?)
la source
vous devez ajouter les lignes de code suivantes:
gca () retourne le handle des axes courants, et a cette propriété legend_
la source
draw()
parshow()
. Ou y a-t-il un avantage particulier à utiliserdraw
?show()
serait OK si la mise à jour du graphe était la dernière commande d'un programme.draw()
est très bien, car il s'agit de la commande générale de mise à jour du graphe. Vous pouvez par exemple vouloir inviter l'utilisateur à entrer dans un terminal après la mise à jour du graphique, ce qui ne peut pas être fait avec le blocageshow()
.draw
c'est plus approprié (mais j'ai toujours l'habitudeshow
de mettre à jour mes graphiques ...).Si vous n'utilisez pas d'objets de tracé fig et hache, vous pouvez le faire comme ceci:
la source
si vous appelez
pyplot
commeplt
frameon=False
consiste à supprimer la bordure autour de la légendeet '' transmet l'information qu'aucune variable ne devrait figurer dans la légende
la source
J'ai fait une légende en l'ajoutant à la figure, pas à un axe (matplotlib 2.2.2). Pour le supprimer, j'ai défini l'
legends
attribut de la figure sur une liste vide:la source
D'après les informations de @naitsirhc, je voulais trouver la documentation officielle de l'API. Voici ma découverte et un exemple de code.
matplotlib.Axes
objet parseaborn.scatterplot()
.ax.get_legend()
renverra unematplotlib.legned.Legend
instance..remove()
function pour supprimer la légende de votre tracé.Si vous vérifiez le
matplotlib.legned.Legend
document API, vous ne verrez pas la.remove()
fonction.La raison en est que l'
matplotlib.legned.Legend
héritage du fichiermatplotlib.artist.Artist
. Par conséquent, lorsque vous appelezax.get_legend().remove()
cela, appelez essentiellementmatplotlib.artist.Artist.remove()
.Au final, vous pourriez même simplifier le code en deux lignes.
la source