Подтвердить что ты не робот

Barchart с вертикальными метками в python/matplotlib

Я использую matplotlib для создания (вертикального) barchart. Проблема в том, что мои ярлыки довольно длинные. Есть ли способ отобразить их по вертикали, либо в панели, либо над ней или под ней?

4b9b3361

Ответ 1

Вы имеете в виду что-то вроде этого:

>>> from matplotlib import *
>>> plot(xrange(10))
>>> yticks(xrange(10), rotation='vertical')

?

В общем, чтобы показать любой текст в matplotlib с вертикальной ориентацией, вы можете добавить ключевое слово rotation='vertical'.

Для получения дополнительных опций вы можете обратиться за помощью (matplotlib.pyplot.text)

Функция yticks отображает тики по оси y; Я не уверен, что вы изначально имели в виду это или функцию ylabel, но процедура одинакова, вам нужно добавить rotation = 'vertical'

Возможно, вы также можете найти полезные опции "verticalalignment" и "horizontalalignign", что позволяет вам определить, как выровнять текст по отношению к тикам или другим элементам.

Ответ 2

Я бы предложил посмотреть галерею matplotlib. По крайней мере, два примера кажутся релевантными:

  • text_rotation.py для понимания того, как работает макет текста
  • barchart_demo2.py, пример гистограммы с несколько более сложной компоновкой, чем самый простой пример.

Ответ 3

В Jupyter Notebook вы можете использовать что-то вроде этого

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np

plt.xticks(rotation='vertical')
plt.plot(np.random.randn(100).cumsum())

или вы можете использовать:

plt.xticks(rotation=90)