web-dev-qa-db-fra.com

Supprimer la légende sur une figure matplotlib

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.)

120
Olivier Verdier

À 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.

148
naitsirhc

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?)

79
ERN

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()
66
cast42

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_

17
fceruti

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()
1
boudewijn21

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()
1
Pelonomi Moiloa