Bekommst die Legende als separates Bild in Matplotlib
Ich bin der Entwicklung einer Web-Anwendung und möchten Sie ein Bild und seine Legende, die in verschiedenen Orten auf der Seite. Das heißt, ich brauche zum speichern der Legende als separate png-Datei. Ist das möglich in der Matplotlib in einem mehr oder weniger einfachen Art und Weise?
InformationsquelleAutor der Frage Ruggiero Spearman | 2010-12-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das funktionieren könnte:
InformationsquelleAutor der Antwort Steve Tjoa
verwenden
pylab.figlegend(..)
undget_legend_handles_labels(..)
:Es kann schwierig sein, wenn man die Größe der Legende der Abbildung rechts in einer automatisierten Weise.
InformationsquelleAutor der Antwort Andre Holzner
Dieser berechnet die Größe der Legende automatisch. Wenn
mode == 1
der code ist ähnlich wie Steve Tjoa Antwort, währendmode == 2
ist ähnlich wie Andre Holzner Antwort.Den
loc
parameter muss eingestellt werden'center'
machen, damit es funktioniert (aber ich weiß nicht, warum dies notwendig ist).Original (unbeschnitten) Legende:
Beschnitten Legende:
InformationsquelleAutor der Antwort klaus se
Können Sie begrenzen die gesicherte region der ein Bild auf den Begrenzungsrahmen der Legende mit der
bbox_inches
argumentfig.savefig
. Unten, um Versionen einer Funktion, die Sie einfach aufrufen kann mit der Legende, die Sie speichern möchten als argument. Sie können entweder verwenden Sie die Legende erstellt, in der ursprünglichen Gestalt (und entfernen Sie es danachlegend.remove()
) oder Sie erstellen eine neue Figur für die Legende und verwenden Sie einfach die Funktion wie es ist.Export Legende boundingbox
Im Falle der vollständigen Legende soll gerettet werden, die bounding-box geliefert, um die
bbox_inches
argument wäre einfach die transformierten bounding box der Legende. Dies funktioniert gut, wenn die Legende hat keine Grenze um ihn herum.Export erweitert Legende bounding-box
Wenn es einen Rahmen um die Legende, die oben genannte Lösung kann suboptimal. In diesem Fall macht es Sinn zu erweitern, die bounding box durch einige Pixel zu zählen der Grenze zu seine volle.
InformationsquelleAutor der Antwort ImportanceOfBeingErnest
Ist es möglich,
Achsen.get_legend_handles_labels
zu Holen Sie sich die Legende, Griffe und Etiketten aus eineraxes
Objekt und verwenden Sie Sie, um Sie hinzuzufügen, um eine Achse in eine andere Figur.Wenn Sie aus irgendeinem Grund ausblenden möchten nur die Achsen, die Sie verwenden können:
oder wenn Sie für einige seltsamer Grund, Sie zu verstecken, Achsen Rahmen, aber nicht die Achsen Etiketten, die Sie verwenden können:
ps: diese Antwort wurde angepasst, aus meiner Antwort auf eine doppelte Frage
InformationsquelleAutor der Antwort Francesco Montesano