Я использую matplotlib для создания (вертикальной) гистограммы. Проблема в том, что мои ярлыки довольно длинные. Есть ли способ отобразить их вертикально, на панели, над ней или под ней?
Гистограмма с вертикальными метками в python / matplotlib
Ответы (4)
Вы имеете в виду что-то вроде этого:
>>> from matplotlib import *
>>> plot(xrange(10))
>>> yticks(xrange(10), rotation='vertical')
?
В общем, чтобы отображать любой текст в matplotlib с вертикальной ориентацией, вы можете добавить ключевое слово rotation='vertical'
.
Дополнительные параметры можно найти в справке (matplotlib.pyplot.text)
Функция yticks отображает отметки на оси y; Я не уверен, что вы изначально имели в виду это или функцию ylabel, но процедура всегда одинакова, вам нужно добавить Rotation = 'vertical'
Возможно, вам также пригодятся опции «вертикальное выравнивание» и «горизонтальное выравнивание», которые позволяют вам определять, как выровнять текст относительно отметок или других элементов.
В 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)
Перейдите по этой ссылке: https://python-graph-gallery.com/7-custom-barplot-layout/
import matplotlib.pyplot as plt
heights = [10, 20, 15]
bars = ['A_long', 'B_long', 'C_long']
y_pos = range(len(bars))
plt.bar(y_pos, heights)
# Rotation of the bars names
plt.xticks(y_pos, bars, rotation=90)
Результат будет примерно таким:
Надеюсь, это поможет.
Я бы посоветовал взглянуть на галерею matplotlib. По крайней мере, два примера кажутся актуальными:
- text_rotation.py для понимания того, как работает макет текста.
- barchart_demo2.py, пример гистограммы с несколько более сложной структурой, чем самый простой пример.