Um einem Matplotlib-Plot eine Legende hinzuzufügen, wird einfach ausgeführt legend()
.
Wie entferne ich eine Legende aus einem Plot?
(Am nächsten kam ich dem Ausführen, legend([])
um die Legende aus den Daten zu leeren. Aber das lässt ein hässliches weißes Rechteck in der oberen rechten Ecke.)
matplotlib
legend
Olivier Verdier
quelle
quelle
ax.get_legend().remove()
funktionierte die Lösung in meinem Fall nicht, während die zweite Lösung (legend = ax.legend() ... legend.remove()
) funktionierte. vielleicht weilax
war einAxesSubplot
in meinem fall?Wenn Sie einen Pandas-Datenrahmen zeichnen und die Legende entfernen möchten, fügen Sie dem Plot-Befehl legend = None als Parameter hinzu.
quelle
Sie können die
set_visible
Methode der Legende verwenden:Dies basiert auf einer Antwort, die mir als Antwort auf eine ähnliche Frage gegeben wurde, die ich vor einiger Zeit hier hatte
(Danke für diese Antwort Jouni - Es tut mir leid, dass ich die Frage nicht als beantwortet markieren konnte ... vielleicht kann jemand, der die Autorität hat, dies für mich tun?)
quelle
Sie müssen die folgenden Codezeilen hinzufügen:
gca () gibt das aktuelle Achsenhandle zurück und hat die Eigenschaft legend_
quelle
draw()
durch zu ersetzenshow()
. Oder gibt es einen besonderen Vorteil bei der Verwendungdraw
?show()
wäre in Ordnung, wenn die Grafikaktualisierung der letzte Befehl eines Programms wäre.draw()
ist in Ordnung, da es sich um den allgemeinen Befehl zum Aktualisieren des Diagramms handelt. Möglicherweise möchten Sie den Benutzer beispielsweise nach der Aktualisierung des Diagramms zur Eingabe in ein Terminal auffordern, was mit der Blockierung nicht möglich istshow()
.draw
angemessener ist (aber ich habeshow
meine Grafiken immer aktualisiert ...).Wenn Sie keine Feigen- und Axt-Plotobjekte verwenden, können Sie dies folgendermaßen tun:
quelle
wenn du anrufst
pyplot
alsplt
frameon=False
ist, den Rand um die Legende zu entfernenund '' übergibt die Information, dass keine Variable in der Legende sein sollte
quelle
Ich habe eine Legende gemacht, indem ich sie der Figur hinzugefügt habe, nicht einer Achse (matplotlib 2.2.2). Um es zu entfernen, setze ich das
legends
Attribut der Figur auf eine leere Liste:quelle
Nach den Informationen von @naitsirhc wollte ich die offizielle API-Dokumentation finden. Hier sind meine Ergebnisse und ein Beispielcode.
matplotlib.Axes
Objekt von erstelltseaborn.scatterplot()
.ax.get_legend()
gibt einematplotlib.legned.Legend
Instanz zurück..remove()
function auf, um die Legende aus Ihrem Plot zu entfernen.Wenn Sie das
matplotlib.legned.Legend
API-Dokument überprüfen , wird die.remove()
Funktion nicht angezeigt.Der Grund ist, dass die
matplotlib.legned.Legend
geerbte diematplotlib.artist.Artist
. Wenn Sie das anrufenax.get_legend().remove()
, rufen Sie daher grundsätzlich anmatplotlib.artist.Artist.remove()
.Am Ende könnten Sie den Code sogar in zwei Zeilen vereinfachen.
quelle