2014-08-28 5 views
3

음수 막대가 아래쪽을 향하게하고 양수 위쪽을 x 축 (0 줄)이 그 사이에 오게하고 싶습니다. 나는 이것을 시도했다Pyplot - 양수 값과 음수 값의 막대 차트

chart = fig.bar(x, negative_data, width=35, color='r') 
ax2 = plt.gca().twinx() 
ax2.bar(x, positive_data, width=35, color='b') 

대신에 나는 아래쪽을 향한 붉은 색과 흰색색의 막대를 합친다. 배열 negative_data/positive_data는 막대의 높이만 지정하는 것으로 보이지만 방향을 지정하는 방법은 무엇입니까? 각 막대의 꼭대기 좌표를 지정해야합니다.

또한 너비는 사용자가 그래프의 크기를 조정할 때 적절하고 동적 일 수 있습니까? 여기

는 문제가 폭의 예입니다

x = [250, 1500, 2750, 4250, 6000, 8500, 13200] 
negative_data = [0, 0, 0, 0, 0, 0, 0] 
positive_data = [3, 0, 0, 0, 1, 0, 0] 

가 어떻게 사람들의 음모가 좋은 보이게 만들 수 있습니까?

답변

14

당신은, 당신은 같은과 같은 축에 모두 막대 그래프를 그릴 수있는 트윈 축을 추가 할 필요가 없습니다 : 축을 채울 하나의 폭

x = range(7) 
negative_data = [-1,-4,-3,-2,-6,-2,-8] 
positive_data = [4,2,3,1,4,6,7,] 

fig = plt.figure() 
ax = plt.subplot(111) 
ax.bar(x, negative_data, width=1, color='r') 
ax.bar(x, positive_data, width=1, color='b') 

bar chart with negative an positive y values

바 크기가 조정되면 그림과 함께 확장됩니다.

+0

멋진 작품! 너는 내가 너비에 대해 어떻게 생각하는지 알고 있니? –

+0

너비가 어떻게 보이길 원하나요? – Molly

+0

막대가 서로 닿거나 두 막대 사이에 매우 작은 간격이 있습니다. 지금은 극히 얇은 수직선이 있습니다. 그들은 또한 검은 색으로 보입니다. 어쩌면 너무 얇기 때문에 색을 볼 수 없습니다. 감사합니다. –

관련 문제