Zrobiłem wykres punktowy z 3 różnych kolorach i chcę dopasować kolor symbol i tekst w legendzie.matplotlib: mecz kolor tekstu legenda o symbolu w wykres punktowy
Miła solution istnieją w przypadku działek linia:
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())
Jednak kolory wykres punktowy nie mogą być dostępne przez get_lines()
.W przypadku 3 kolorach myślę, że mogę ręcznie ustawić kolory tekstu jedno- osobno przy użyciu np. text.set_color('r')
. Ale byłem ciekawy, czy można to zrobić automatycznie jako linie. Dzięki!
Jak o 'get_children' lub 'get_patches'? Czy możesz podać minimalny przykład pracy? Można zajrzeć do metod Legenda do innych pomysłów: https://matplotlib.org/1.3.0/api/legend_api.html –
@AleksanderLidtke Dzięki za sugestie! Próbowałem 'leg.get_patches()' przed i nic nie zwraca. Właśnie próbowałem 'leg.get_children()' i zwraca 'matplotlib.offsetbox.VPacker' i' matplotlib.patches.FancyBboxPatch' obiektów, z których żaden nie ma właściwości 'get_color()'. Łącze rozwiązania ma działający przykład dla linii, przepraszam z działkami rozproszonymi Mam tylko niedziałający przykład ... – Phyinmi
niedziałający przykład jest w porządku. Proszę, po prostu zrób prosty przykład, który pokazuje, w jaki sposób tworzysz wykresy rozproszenia i legendę. Jeśli to nie działa, po prostu powiedz, jakie błędy otrzymasz. –