2016-07-01 2 views
0

막대 그래프를 그리기 위해 Matplotlib을 사용하고 있습니다. 대부분의 데이터 값은 -10에서 +30 사이입니다. 그러나, 나는 -300 주위에있는 두 개의 데이터 값을 가지고있다.최대 길이가있는 Matplotlib 플롯 막대 그래프

데이터를 플롯 할 때 -300 데이터 값 막대가 너무 커 보이고 다른 막대의 통찰력을 숨 깁니다. -10에서 +30 범위의 모든 막대를 플롯 할 수있는 방법이 있습니까? -30에서 -300 막대를 잘라 내고 대신 "-300"레이블을 작성합니까?

답변

3

ax.set_ylim()을 사용하여 일 릿을 설정하고 ax.annotate을 사용하여 레이블을 작성합니다 (원하는 경우 화살표가 표시됨).

import matplotlib.pyplot as plt 

fig, ax = plt.subplots(1) 

y = [-5, 10, 25, -10, 30, -300, 20, 30, -10, -300, 0, 4] 
x = range(len(y)) 

ax.bar(x, y, width=1, alpha=0.5) 

ymin, ymax = -15, 35 
ax.set_ylim(ymin, ymax) 

for xbar,ybar in zip(x,y): 

    if ybar < ymin: 

     ax.annotate(
       ybar, 
       xy=(xbar+0.5, -14), 
       xytext=(xbar+0.5, -8), 
       rotation=90, ha='center', va='center', 
       arrowprops=dict(arrowstyle="->")) 

plt.show() 

예 :

관련 문제