2012-04-14 271 views
0

在官方的例子中,我們可以用條功能是這樣的:matplotlib條形圖errbar

#!/usr/bin/env python 
# a stacked bar plot with errorbars 
import numpy as np 
import matplotlib.pyplot as plt 


N = 5 
menMeans = (20, 35, 30, 35, 27) 
womenMeans = (25, 32, 34, 20, 25) 
menStd  = (2, 3, 4, 1, 2) 
womenStd = (3, 5, 2, 3, 3) 
ind = np.arange(N) # the x locations for the groups 
width = 0.35  # the width of the bars: can also be len(x) sequence 

p1 = plt.bar(ind, menMeans, width, color='r', yerr=womenStd,align='center') 
p2 = plt.bar(ind, womenMeans, width, color='y',bottom=menMeans, yerr=menStd,align='center') 

plt.ylabel('Scores') 
plt.title('Scores by group and gender') 
plt.xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5')) 
plt.yticks(np.arange(0,81,10)) 
plt.legend((p1[0], p2[0]), ('Men', 'Women')) 

plt.show() 

我不明白的是,爲什麼womenStd用作menMeans的yerr, 和menStd被用作女性的手段。

請問你能解釋一下嗎? 非常感謝。

回答

1

它可能非常可能是一個錯字。對於這個例子來說,它看起來並不重要,它可以說明matplotlib的功能。

1

這必須是文檔中的拼寫錯誤,可以通過更改每個組中項目的數量來演示。例如,從每個women變量中刪除最後一項,並創建一個新的ind2 = np.arange(N-1)並重新運行代碼。你會得到一個堆棧跟蹤,這表明你的直覺是正確的,你應該使用類似的命名變量。顯然,給出的例子僅僅是用於說明,但可能應該更改爲更清楚。