programing

python / matplotlib의 세로 레이블이있는 Barchart

randomtip 2021. 1. 14. 08:14
반응형

python / matplotlib의 세로 레이블이있는 Barchart


matplotlib를 사용하여 (수직) 막대 차트를 생성하고 있습니다. 문제는 내 레이블이 다소 길다는 것입니다. 막대 또는 그 위 또는 아래에 세로로 표시하는 방법이 있습니까?


다음과 같은 것을 의미합니까?

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

?

일반적으로 matplotlib의 텍스트를 세로 방향으로 표시하려면 키워드를 추가하면 rotation='vertical'됩니다.

추가 옵션은 help (matplotlib.pyplot.text)를 참조하십시오.

yticks 함수는 y 축에 눈금을 표시합니다. 원래 의미가 ylabel 함수인지 확실하지 않지만 절차는 이미 동일하므로 rotation = 'vertical'을 추가해야합니다.

'verticalalignment'및 'horizontalalignment'옵션을 사용하면 눈금이나 다른 요소에 대해 텍스트를 정렬하는 방법을 정의 할 수 있습니다.


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)

matplotlib 갤러리를 살펴 보는 것이 좋습니다 . 두 가지 이상의 예가 관련이있는 것 같습니다.

  • 텍스트 레이아웃 작동 방식 이해를위한 text_rotation.py
  • barchart_demo2.py , 가장 기본적인 예보다 레이아웃이 다소 복잡한 막대 차트의 예입니다.

이 링크를 확인하십시오 : 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)

결과는 다음과 같습니다. 여기에 이미지 설명 입력

도움이 되었기를 바랍니다.

참조 URL : https://stackoverflow.com/questions/1221108/barchart-with-vertical-labels-in-python-matplotlib

반응형