Pour ajouter une légende à un graphique matplotlib, il suffit de lancer legend()
.
Comment enlever une légende d'un complot?
(Le plus proche auquel je suis arrivé est d'exécuter legend([])
afin de vider la légende des données. Mais cela laisse un vilain rectangle blanc dans le coin supérieur droit.)
À partir de matplotlib v1.4.0rc4
, une méthode remove
a été ajoutée à l’objet Légende.
Usage:
ax.get_legend().remove()
ou
legend = ax.legend(...)
...
legend.remove()
Voir ici pour le commit où cela a été introduit.
Vous pouvez utiliser la légende set_visible
méthode:
ax.legend().set_visible(False)
draw()
Ceci est basé sur une réponse qui m’a été fournie en réponse à une question similaire que j’avais il ya quelque temps ici
(Merci pour cette réponse Jouni - Je suis désolé, je n'ai pas pu marquer la question comme réponse ... peut-être que quelqu'un qui en a l'autorité peut le faire pour moi?)
Si vous souhaitez tracer un dataframe Pandas et que vous souhaitez supprimer la légende, ajoutez legend = None en tant que paramètre de la commande plot.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df2 = pd.DataFrame(np.random.randn(10, 5))
df2.plot(legend=None)
plt.show()
vous devez ajouter les lignes de code suivantes:
ax = gca()
ax.legend_ = None
draw()
gca () retourne le handle d'axes actuel et a cette propriété legend_
J'ai créé une légende en l'ajoutant à la figure et non à un axe (matplotlib 2.2.2). Pour le supprimer, je règle l'attribut legends
de la figure sur une liste vide:
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()
ax1.plot(range(10), range(10, 20), label='line 1')
ax2.plot(range(10), range(30, 20, -1), label='line 2')
fig.legend()
fig.legends = []
plt.show()
Si vous n'utilisez pas d'objets de graphique fig et ax, vous pouvez le faire comme suit:
import matplotlib.pyplot as plt
# do plot specifics
plt.legend('')
plt.show()