Ich habe ein Streudiagramm mit 3 verschiedenen Farben erstellt und möchte die Farbe des Symbols und den Text in der Legende übereinstimmen.matplotlib: Übereinstimmung Legend Textfarbe mit Symbol in Streudiagramm
Ein schöner solution gibt es für den Fall der Liniendiagramme:
leg = ax.legend()
# change the font colors to match the line colors:
for line,text in zip(leg.get_lines(), leg.get_texts()):
text.set_color(line.get_color())
jedoch Streudiagramm Farben nicht durch get_lines()
.Für den Fall von 3 Farben ich glaube, ich manuell den Text zugegriffen werden kann Farben festlegen können ein- by-one mit z. text.set_color('r')
. Aber ich war neugierig, ob das automatisch als Zeilen gemacht werden kann. Vielen Dank!
Wie wäre es 'get_children' oder 'get_patches'? Können Sie ein funktionierendes Beispiel angeben? Vielleicht möchten Sie in die Legenden-Methoden für andere Ideen schauen: https://matplotlib.org/1.3.0/api/legend_api.html –
@AleksanderLidtke Danke für die Vorschläge! Ich habe 'leg.get_patches()' vorher versucht und nichts kehrt zurück. Ich habe gerade 'leg.get_children()' versucht und es gibt 'matplotlib.offsetbox.VPacker' und' matplotlib.patches.FancyBboxPatch' Objekte zurück, von denen keines die Eigenschaft 'get_color()' hat. Der Lösungslink hat ein Arbeitsbeispiel für Linien, sorry mit Streudiagrammen Ich habe nur ein nicht funktionierendes Beispiel ... – Phyinmi
ein nicht funktionierendes Beispiel ist in Ordnung. Bitte machen Sie ein einfaches Beispiel, das zeigt, wie Sie die Streudiagramme und die Legende erstellen. Wenn es nicht funktioniert, sag bitte, welche Fehler du bekommst. –