Здесь много «правильных» ответов, но я добавлю еще один, поскольку я думаю, что некоторые детали опущены из нескольких. ОП запросил поворот на 90 градусов, но я изменю на 45 градусов, потому что, когда вы используете угол, который не равен нулю или 90, вы должны также изменить горизонтальное выравнивание; в противном случае ваши ярлыки будут смещены от центра и будут немного вводить в заблуждение (и я предполагаю, что многие люди, которые приезжают сюда, хотят повернуть оси в положение, отличное от 90).
Самый простой / наименьший код
Опция 1
plt.xticks(rotation=45, ha='right')
Как упоминалось ранее, это может быть нежелательно, если вы предпочитаете объектно-ориентированный подход.
Вариант 2
Другой быстрый способ (он предназначен для объектов даты, но, кажется, работает на любом ярлыке; сомневаюсь, что это рекомендуется):
fig.autofmt_xdate(rotation=45)
fig
вы обычно получаете от:
fig = plt.figure()
fig, ax = plt.subplots()
fig = ax.figure
Объектно-ориентированный / Работа непосредственно с ax
Вариант 3а
Если у вас есть список меток:
labels = ['One', 'Two', 'Three']
ax.set_xticklabels(labels, rotation=45, ha='right')
Вариант 3б
Если вы хотите получить список меток с текущего графика:
# 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')
Вариант 4
Аналогично вышеописанному, но вместо этого выполните обход вручную.
for label in ax.get_xticklabels():
label.set_rotation(45)
label.set_ha('right')
Вариант 5
Мы все еще используем pyplot
(как plt
) здесь, но это объектно-ориентированный, потому что мы изменяем свойство определенного ax
объекта.
plt.setp(ax.get_xticklabels(), rotation=45, ha='right')
Вариант 6
Эта опция проста, но, AFAIK, вы не можете установить горизонтальное выравнивание этикетки таким образом, так что другой вариант может быть лучше, если ваш угол не равен 90.
ax.tick_params(axis='x', labelrotation=45)
Изменить:
есть обсуждение этой конкретной "ошибки", и исправление потенциально планируется для v3.2.0
:
https://github.com/matplotlib/matplotlib/issues/13774
ha
(горизонтальное выравнивание)