2013-08-23 3 views
6

이산 별표 (1-5)로 값 당 평가 금액을 보여주는 막대 그래프를 만들려고합니다. 값마다 막대가 있어야하며 x 축에는 각 막대 아래에 [1,2,3,4,5]가 표시됩니다. 불연속 값마다 막대가있는 막대 차트/막대 그래프를 만드는 방법은 무엇입니까?

는 I 0-7으로 5 또는 범위 빈들의 양을 설정했지만, 그

enter image description here

이이있다 (공급 된 화상과 같이) 값 걸쳐 바를 생성 코드 내가 시도 (팬더와 NumPy와)

df.stars.hist() 

hist, bins = np.histogram(x1, bins=5) 
ax.bar(bins[:-1], hist.astype(np.float32)/hist.sum(), width=(bins[1]-bins[0]), color="blue") 

답변

8
당신은 plot(kind='bar') 방법을 사용할 수 있습니다

:

stars = Series(randint(1, 6, size=100)) 
vc = stars.value_counts().sort_index() 
ax = vc.plot(kind='bar') 
fig = ax.get_figure() 
fig.autofmt_xdate() 

는 얻을 :

enter image description here

수정 # 1 : 비율은 단지 sum

vc /= float(vc.sum()) 
assert vc.sum() == 1 
에 의해 분할로
그들을 표시하려면

받기 :

enter image description here

편집 # 2 : y 축 틱

new_labels = ['{0:.0%}'.format(float(x.get_text())) for x in ax.get_yticklabels()] 
ax.set_yticklabels(new_labels) 

가 얻을 레이블의 형식을 위의 형식 사양의 미니 언어를 사용할 때 백분율 합으로 나누어으로 그들을 표시하려면 :

enter image description here

+0

감사합니다. 실제로 전체 데이터에서 백분율로 금액을 표시하고 있습니다. 제안 된 접근 방식을 사용하면 어떻게됩니까? – d1337

관련 문제