Jak na figurze matplotlib mogę zmienić rozmiar czcionki dla etykiet kleszczy, używając ax1.set_xticklabels()
mniejszej?
Ponadto, w jaki sposób można go obracać z poziomego na pionowy?
python
matplotlib
Otwórz drogę
źródło
źródło
Odpowiedzi:
Uwaga: nowsze wersje MPL mają skrót do tego zadania. Przykład pokazano w innej odpowiedzi na to pytanie: https://stackoverflow.com/a/11386056/42346
Poniższy kod ma charakter poglądowy i niekoniecznie musi być zoptymalizowany.
źródło
plt.setp
. (Zobacz takżeax.tick_params
) Na przykład możesz po prostu zrobićplt.setp(ax.get_xticklabels(), rotation='vertical', fontsize=14)
. Ponadto obiekty osi mająax.is_last_row()
metodę, która może być przydatna w przypadkach takich jak twój przykład. Zamiast tegoif i != len...
możesz zrobićif not ax.is_last_row()
. (Dlaczego to metoda, nie mam pojęcia ... Matplotlib nienawidzi właściwości, najwyraźniej!)is_last_row()
, dziękuję! Używałemplt.setp
w przeszłości i niekoniecznie byłem pewien, że reprezentuje to bardziej kanoniczny sposób dostosowywania etykiet kleszczy. Dzięki temu usunąłeś wątpliwości. Mówiąc szerzej: twoje odpowiedzi, szczególnie wmatplotlib
tagu, często mnie zachwycają. Kontynuujcie wspaniałą pracę.plt.setp
jest „matlab-ism”, a wyraźna pętla jest prawdopodobnie znacznie bardziej pythoniczna. Będąc nawróconym matlabem,setp
czuję się naturalnie, ale każdy z nich ma swoje. Każdy z nich jest dość czytelny, imoax.tick_params(axis='x', labelsize=8)
get_ticklabels
nieget_major_ticks
W rzeczywistości istnieje prostszy sposób. Właśnie znalazłem:
To jednak odpowiada tylko na wielkość
label
części twojego pytania.źródło
axis = 'x'
lub,axis = 'y'
aby zmodyfikować tylko jedną z osiAby określić jednocześnie rozmiar i obrót czcionki, spróbuj tego:
źródło
Alternatywnie możesz po prostu zrobić:
źródło
źródło
ax.xaxis.set_tick_params(labelsize=20)
Kolejna alternatywa
Mam dwie działki obok siebie i chciałbym osobno dopasowywać etykiety.
Powyższe rozwiązania były bliskie, ale dla mnie nie działały. Znalazłem rozwiązanie z tej strony matplotlib .
To załatwiło sprawę i od razu do rzeczy. W moim przypadku należało dostosować działkę po prawej stronie. W przypadku wykresu po lewej, odkąd tworzyłem nowe etykiety kleszczy, byłem w stanie dostosować czcionkę w tym samym procesie, co ustawienie etykiet.
to znaczy
dlatego użyłem właściwej działki,
Drobna subtelność ... Wiem ... ale mam nadzieję, że to komuś pomoże :)
Punkty bonusowe, jeśli ktoś wie, jak dostosować rozmiar czcionki etykiety wielkości rzędu.
źródło
W obecnych wersjach Matplotlib możesz to zrobić
axis.set_xticklabels(labels, fontsize='small')
.źródło
labels
. Lepiej jest, jeśli możemy zmienić tylko rozmiar czcionki.Możesz również zmienić parametry wyświetlania etykiety, takie jak rozmiar czcionki, za pomocą linii takiej jak ta:
źródło
Używam mniejszej czcionki
ax1.set_xticklabels(xticklabels, fontsize=7)
i to działa!
źródło
Dla mnie działało:
Zaletą powyższego jest nie trzeba aby zapewnić
array
odlabels
i współpracuje ze wszystkimi danymi na temataxes
.źródło