2013-04-10 4 views
8

막 대형 차트가있는 막대 그래프를 플롯하려하고 있는데 x 축 레이블을 실제 빈과 정렬하는 방법을 찾는 데 어려움이 있습니다. 아래 코드는 다음 플롯을 생성합니다 : Bar chartmatplotlib : 히스토그램 및 빈 레이블

볼 수 있듯이 각 x- 레이블의 끝은 해당 빈의 가운데에 맞춰져 있지 않습니다. 제가 이것을 생각하는 방법은 45도 회전을 적용 할 때 레이블이 기하학적 중심을 중심으로 선회하는 것입니다. 피봇을 라벨 상단으로 옮길 수 있는지 궁금합니다. (또는 단순히 모든 라벨이 약간 왼쪽으로 번역합니다.)

import matplotlib.pyplot as plt 
import numpy as np 

#data 
np.random.seed(42) 
data = np.random.rand(5) 
names = ['A:GBC_1233','C:WERT_423','A:LYD_342','B:SFS_23','D:KDE_2342'] 

ax = plt.subplot(111) 
width=0.3 
bins = map(lambda x: x-width/2,range(1,len(data)+1)) 
ax.bar(bins,data,width=width) 
ax.set_xticks(map(lambda x: x, range(1,len(data)+1))) 
ax.set_xticklabels(names,rotation=45) 

plt.show() 

답변

9

사용 :

ax.set_xticklabels(names,rotation=45, rotation_mode="anchor", ha="right") 

출력은 다음과 같습니다

enter image description here

+0

화려한, 감사합니다! – dimka