Proste pytanie tutaj: staram się, aby rozmiar mojej legendy matplotlib.pyplot
był mniejszy (tzn. Mniejszy tekst). Kod, którego używam, wygląda mniej więcej tak:
plot.figure()
plot.scatter(k, sum_cf, color='black', label='Sum of Cause Fractions')
plot.scatter(k, data[:, 0], color='b', label='Dis 1: cf = .6, var = .2')
plot.scatter(k, data[:, 1], color='r', label='Dis 2: cf = .2, var = .1')
plot.scatter(k, data[:, 2], color='g', label='Dis 3: cf = .1, var = .01')
plot.legend(loc=2)
python
size
matplotlib
legend
mikrofon
źródło
źródło
plot.rcParams.update
?To powinno wystarczyć
Następnie wykonaj fabułę później.
Istnieje wiele innych rcParams, można je również ustawić w pliku matplotlibrc.
Prawdopodobnie możesz to zmienić, przekazując
matplotlib.font_manager.FontProperties
instancję, ale nie wiem, jak to zrobić. -> zobacz odpowiedź Yanna.źródło
matplotlib.rc('legend', fontsize=0.5, linewidth=2)
legend.handlelength
zamiastlegend.linewidth
za pomocą
import matplotlib.pyplot as plt
Metoda 1: Określ rozmiar czcionki podczas wywoływania legendy (powtarzalne)
Za pomocą tej metody można ustawić rozmiar czcionki dla każdej legendy podczas tworzenia (co pozwala na posiadanie wielu legend o różnych rozmiarach czcionek). Musisz jednak wpisać wszystko ręcznie za każdym razem, gdy tworzysz legendę.
(Uwaga: @ Mathias711 wymienił dostępne nazwane rozmiary czcionek w swojej odpowiedzi)
Metoda 2: Określ rozmiar czcionki w rcParams (wygodne)
Za pomocą tej metody ustawiasz domyślny rozmiar czcionki legendy, a wszystkie legendy będą go automatycznie używać, chyba że określisz inaczej za pomocą metody 1. Oznacza to, że możesz ustawić swój rozmiar czcionki legendy na początku kodu i nie martwić się o ustawienie go dla poszczególnych legend .
Jeśli użyjesz nazwanego rozmiaru, np.
'medium'
Tekst legendy będzie skalowany wraz z globalnymfont.size
wrcParams
. Aby zmienićfont.size
użycieplt.rc(font.size='medium')
źródło
Istnieje również kilka nazwanych rozmiarów czcionek , oprócz wielkości w punktach:
Stosowanie:
źródło
Istnieje wiele ustawień dostosowywania rozmiaru legendy. Dwie najbardziej przydatne dla mnie to:
legend(..., labelspacing=0.2)
zmniejszy odstęp między wpisami do 2 punktów. Domyślnie w mojej instalacji wynosi około 0,5.legend(..., prop={'size':8})
. Domyślnie w mojej instalacji jest około 14 punktów.Ponadto dokumentacja legenda wymienia szereg innych parametrów napawania i odstępów w tym:
borderpad
,handlelength
,handletextpad
,borderaxespad
, icolumnspacing
. Wszystkie mają tę samą formę co odstępy między etykietami i obszar również w wielokrotnościach rozmiaru czcionki.Wartości te można również ustawić jako wartości domyślne dla wszystkich liczb za pomocą pliku matplotlibrc .
źródło
Podczas mojej instalacji FontProperties zmienia tylko rozmiar tekstu, ale nadal jest zbyt duży i rozstawiony. Znalazłem parametr w
pyplot.rcParams
:legend.labelspacing
, który Zgaduję jest ustawiony na ułamek rozmiaru czcionki. Zmieniłem to za pomocąNie jestem pewien, jak określić to w funkcji pyplot.legend - zaliczenie
lub
wraca z błędem.
źródło
plot.legend (loc = „prawy dolny róg”, miejsca dziesiętne = 2, fontsize = „11”, tytuł = „Hej tam”, title_fontsize = '20')
źródło