Viele "richtige" Antworten hier, aber ich werde noch eine hinzufügen, da ich denke, dass einige Details von mehreren weggelassen wurden. Das OP bat um eine 90-Grad-Drehung, aber ich werde auf 45 Grad wechseln, denn wenn Sie einen Winkel verwenden, der nicht Null oder 90 ist, sollten Sie auch die horizontale Ausrichtung ändern. Andernfalls sind Ihre Beschriftungen außermittig und etwas irreführend (und ich vermute, dass viele Leute, die hierher kommen, die Achsen auf etwas anderes als 90 drehen möchten).
Einfachster / am wenigsten Code
Option 1
plt.xticks(rotation=45, ha='right')
Wie bereits erwähnt, ist dies möglicherweise nicht wünschenswert, wenn Sie lieber den objektorientierten Ansatz wählen.
Option 2
Ein weiterer schneller Weg (er ist für Datumsobjekte vorgesehen, scheint jedoch auf jedem Etikett zu funktionieren; bezweifle jedoch, dass dies empfohlen wird):
fig.autofmt_xdate(rotation=45)
fig
Sie würden normalerweise bekommen von:
fig = plt.figure()
fig, ax = plt.subplots()
fig = ax.figure
Objektorientiert / Direkt mit ax
Option 3a
Wenn Sie die Liste der Etiketten haben:
labels = ['One', 'Two', 'Three']
ax.set_xticklabels(labels, rotation=45, ha='right')
Option 3b
Wenn Sie die Liste der Beschriftungen aus dem aktuellen Plot abrufen möchten:
# Unfortunately you need to draw your figure first to assign the labels,
# otherwise get_xticklabels() will return empty strings.
plt.draw()
ax.set_xticklabels(ax.get_xticklabels(), rotation=45, ha='right')
Option 4
Ähnlich wie oben, jedoch manuell durchlaufen.
for label in ax.get_xticklabels():
label.set_rotation(45)
label.set_ha('right')
Option 5
Wir verwenden hier immer noch pyplot
(as plt
), aber es ist objektorientiert, weil wir die Eigenschaft eines bestimmten ax
Objekts ändern .
plt.setp(ax.get_xticklabels(), rotation=45, ha='right')
Option 6
Diese Option ist einfach, aber AFAIK Sie können die Beschriftung nicht horizontal ausrichten, sodass eine andere Option möglicherweise besser ist, wenn Ihr Winkel nicht 90 beträgt.
ax.tick_params(axis='x', labelrotation=45)
Bearbeiten:
Es gibt eine Diskussion über diesen genauen "Fehler" und ein Fix ist möglicherweise geplant für v3.2.0
:
https://github.com/matplotlib/matplotlib/issues/13774
ha
(horizontale Ausrichtung)