matplotlib Legende Kreis-Marker
Mache ich eine Legende für ein Punktdiagramm mit einem proxy-Künstlern (http://matplotlib.sourceforge.net/users/legend_guide.html#using-proxy-artist) und versuchen, machen Kreis-förmige Markierungen.
Dies ist mein code:
legend([Circle((0,0), fc='g')], ["Green Circle"])
Aber wenn ich zeichnen Sie es, die Legende nicht einen Kreis, und stattdessen zeigt ein Rechteck...
Wie bekomme ich die Legende nach haben die Kreis-Markierungen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn alles, was Sie suchen, ist eine kreisförmige Markierung in der Legende (im Gegensatz zu streng mit proxy-Künstler), dann schlage ich vor, versuchen so etwas wie:
Zeigt Kreise in verschiedenen Farben und Größen, wobei die 2D-Linie, die gezeichnet wird, ist weiß (daher
color="white"
). Wenn Sie nicht möchten, dass die Kreise gefüllt sind, zum Beispiel gesetztmarkeredgecolor="green"
undmarkerfacecolor="white"
.Weitere Optimierungen
color="white"
wird immer noch die Linie.linewidth=0
vollständig auszublenden die Linie.handletextpad
keyword argument fürplt.legend
zu verringern den Raum zwischen dem Kreis und dem label. Der Wert kann auch negativ sein, z.B.handletextpad=-0.3
.seaborn
Paletten, können Sie die einzelnen marker Gesicht Farben, die durch die Indexierung der palette. E. g.markerfacecolor=sns.color_palette("cubehelix", 3)[0]
linestyle='none'
. Gelten die gleichen marker-Skala, nehmen Sie die Quadratwurzel.np.sqrt(msize)
@punkkat Beim hinzufügen von patches (der Kreis ist) Hinzugefügt werden, um eine Legende, es ist nicht der patch selbst, die Hinzugefügt wird, sondern eine neue Rechteck-patch erstellt, mit genau den gleichen Eigenschaften (Farbe, Schraffur, alpha etc.) von den angegebenen patch. Daher, egal, die eingehenden Form, wird das Ergebnis ein quadratischer Flecken in der Legende.
Die einfache Lösung, wie von @cosmosis, ist die pass-line-Instanzen der Legende, die Unterstützung beliebiger Marker, und da gibt es keine Begrenzung auf die Form eines markers, gibt es keine Begrenzung auf die Formen, die Sie übergeben können, auf die Legende.