Гистограмма с вертикальными метками в python / matplotlib - PullRequest
53 голосов
/ 03 августа 2009

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

Ответы [ 4 ]

73 голосов
/ 03 августа 2009

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

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

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

Дополнительные параметры вы можете найти в справке (matplotlib.pyplot.text)

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

Может быть, вы также можете найти полезные опции 'вертикальное выравнивание' и 'горизонтальное выравнивание', которые позволяют вам определить, как выровнять текст относительно галочек или других элементов.

13 голосов
/ 22 сентября 2017

В 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)
5 голосов
/ 07 августа 2009

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

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

Пожалуйста, проверьте эту ссылку: https://python -graph-gallery.com / 7-заказ barplot-макет /

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)

Результат будет таким enter image description here

Надеюсь, это поможет.

...