2009-08-03 3 views
40

저는 (수직) barchart를 생성하기 위해 matplotlib을 사용하고 있습니다. 문제는 내 라벨이 길다는 것입니다. 막대를 위 또는 아래에 수직으로 표시 할 수있는 방법이 있습니까?파이썬에서 수직 레이블이있는 Barchart/matplotlib

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

:

답변

58

당신은 같은 것을 의미합니까?

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

추가 옵션의 경우,

가 yticks 기능은 y 축에 틱을 나타내는 (matplotlib.pyplot.text) 도움말을 볼 수 있습니다; 나는 당신이 원래이 의미인지 또는 ylabel 함수인지를 알지 못하지만 프로 시저가 똑같은 경우 rotation = 'vertical'을 추가해야한다.

아마도 'verticalalignment'와 'horizontalalignment'옵션을 유용하게 사용할 수있다. 이것은 눈금 또는 기타 요소와 관련하여 텍스트를 정렬하는 방법을 정의 할 수있게합니다.

+0

주(); 그러나 bar(). 그러나 회전 = '수직적'이 핵심으로 보인다. 그러나 이것은 여전히 ​​막대에 틱을 그리지 않습니다. – phihag

+0

xy 축에서 눈금을 의미합니까? 그리드 기능을 살펴보십시오. 예를 들어 grid (ls = '', marker = 'v'). grid()는 xy 축의 격자 그리기를 제어합니다. 마커 옵션을 사용하면 틱 표시 자에 대한 stile을 정의하고 ls = ''로 보이지 않는 격자를 얻습니다. – dalloliogm

+0

@dalloliogm good – phihag

5

나는 the matplotlib gallery을보고 싶습니다. 예제 두 개 이상의 관련 것 같다 :

  • text_rotation.py 텍스트 레이아웃이
  • barchart_demo2.py, 가장 기본적인 예보다 약간 더 복잡한 레이아웃 막대 차트의 예를 작동하는 방법을 이해합니다. Jupyter 노트북에서
1

%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)