Aby dodać legendę do wykresu matplotlib, wystarczy uruchomić legend()
.
Jak usunąć legendę z fabuły?
(Najbliżej do tego doszedłem legend([])
, aby usunąć legendę z danych. Pozostaje brzydki biały prostokąt w prawym górnym rogu).
matplotlib
legend
Olivier Verdier
źródło
źródło
ax.get_legend().remove()
rozwiązanie nie działało w moim przypadku, podczas gdy drugie rozwiązanie (legend = ax.legend() ... legend.remove()
) działało. może dlatego, żeax
byłAxesSubplot
w moim przypadku?Jeśli chcesz wykreślić ramkę danych Pandas i chcesz usunąć legendę, dodaj legendę = Brak jako parametr do polecenia kreślenia.
źródło
Możesz użyć metody legendy
set_visible
:Opiera się to na odpowiedzi udzielonej mi w odpowiedzi na podobne pytanie, które miałem tutaj jakiś czas temu
(Dziękuję za odpowiedź Jouni - przepraszam, że nie udało mi się oznaczyć pytania jako udzielonego ... może ktoś mający uprawnienia może to dla mnie zrobić?)
źródło
musisz dodać następujące linie kodu:
gca () zwraca uchwyt bieżącej osi i ma tę właściwość legend_
źródło
draw()
przezshow()
. Czy jest jakaś szczególna zaleta w używaniudraw
?show()
byłoby OK, gdyby aktualizacja wykresu była ostatnią komendą programu.draw()
jest w porządku, ponieważ jest to ogólne polecenie aktualizacji wykresu. Możesz na przykład chcieć poprosić użytkownika o wprowadzenie pewnych danych w terminalu po zaktualizowaniu wykresu, czego nie można zrobić z blokowaniemshow()
.draw
jest to bardziej odpowiednie (ale zawszeshow
aktualizowałem swoje wykresy ...).Jeśli nie używasz obiektów wykresu fig i topór, możesz to zrobić w następujący sposób:
źródło
jeśli zadzwonisz
pyplot
jakoplt
frameon=False
jest usunięcie granicy wokół legendya „” przekazuje informację, że żadna zmienna nie powinna znajdować się w legendzie
źródło
Stworzyłem legendę, dodając ją do rysunku, a nie do osi (matplotlib 2.2.2). Aby ją usunąć, ustawiłem
legends
atrybut figury na pustą listę:źródło
Zgodnie z informacją z @naitsirhc chciałem znaleźć oficjalną dokumentację API. Oto moje odkrycie i przykładowy kod.
matplotlib.Axes
obiekt wgseaborn.scatterplot()
.ax.get_legend()
Zwrócimatplotlib.legned.Legend
przypadku..remove()
funkcję, aby usunąć legendę ze swojej fabuły.Jeśli sprawdzisz
matplotlib.legned.Legend
dokument API, nie zobaczysz.remove()
funkcji.Powodem jest to, że
matplotlib.legned.Legend
odziedziczyłmatplotlib.artist.Artist
. Dlatego, kiedy to nazywaszax.get_legend().remove()
, po prostu zadzwońmatplotlib.artist.Artist.remove()
.W końcu możesz nawet uprościć kod do dwóch wierszy.
źródło