Sprawdź oś X na poniższym rysunku. Jak mogę przesunąć etykiety nieco w lewo, aby dopasować je do odpowiednich znaczników?
Obracam etykiety za pomocą:
ax.set_xticks(xlabels_positions)
ax.set_xticklabels(xlabels, rotation=45)
Ale, jak widać, obrót jest wyśrodkowany na środku etykiet tekstowych. Co sprawia, że wygląda na to, że są przesunięte w prawo.
Zamiast tego próbowałem użyć tego:
ax.set_xticklabels(xlabels, rotation=45, rotation_mode="anchor")
... ale nie robi tego, czego chciałem. I "anchor"
wydaje się być tylko wartość dopuszczalna dla rotation_mode
parametru.
matplotlib
Filipe Correia
źródło
źródło
xlabels = ax.get_xticklabels()
jeśli chcesz po prostu użyć istniejących etykiet.Obracanie etykiet jest z pewnością możliwe. Należy jednak pamiętać, że takie postępowanie ogranicza czytelność tekstu. Jedną z alternatyw jest zmiana pozycji etykiet przy użyciu takiego kodu:
Aby uzyskać więcej informacji na temat tła i alternatyw, zobacz ten post na moim blogu
źródło
Prostą alternatywą bez pętli jest użycie
horizontalalignment
właściwości Text jako argumentu słowa kluczowego wxticks
[1]. Poniżej, w skomentowanej linii, wymusiłemxticks
wyrównanie, aby było „prawidłowe”.(
yticks
już domyślnie wyrównuje prawą krawędź do znacznika, alexticks
domyślnie wydaje się być „do środka”).[1] Znajdziesz to opisane w dokumentacji xticks, jeśli szukasz frazy „Właściwości tekstu”.
źródło
Jeśli nie chcesz modyfikować etykiet xtick, możesz po prostu użyć:
plt.xticks(rotation=45)
źródło
plt.xticks(rotation=45,ha='right')