2013-06-24 86 views

回答

1

我給你做了一個matplotlib的例子。我只爲每個條形圖製作了三個組件。在你的例子中,爲總數增加兩個作爲練習留給讀者。 :)代碼在下面引用。你也可以看到它現場或下載我的IPython筆記本:http://nbviewer.ipython.org/5852773

import numpy as np 
import matplotlib.pyplot as plt 

width=0.5 

strong_dis = np.array((20, 10, 5, 10, 15)) 
disagree = np.array((20, 25, 15, 15, 10)) 
# shortcut here 
therest = np.subtract(100, strong_dis + disagree) 

q = np.arange(5) 

bsd=plt.barh(q, strong_dis, width, color='red') 
bd=plt.barh(q, disagree, width, left=strong_dis, color='pink') 
br=plt.barh(q, therest, width, left=strong_dis+disagree, color='lightblue') 

ylabels = tuple(reversed(['A', 'B', 'C', 'D', 'E'])) 
plt.yticks(q+width/2., ylabels) 

plt.xlabel('Responses (%)') 
plt.legend((bsd, bd, br), ('strong disagree', 'disagree', 'the rest')) 
plt.show() 
+0

謝謝你的例子。即使安裝了numpy和matplotlib,我也無法運行此程序。它抱怨未定義的xlabel和legend。所以我使用pli.xlabel和pli.legend。然後程序正常退出,但沒有生成任何東西... – drdot

+0

請重試。我在pylab模式下運行IPython('ipython notebook --pylab = inline'),這意味着它會自動從pyplot和numpy中導入東西。我現在修復了代碼,它應該在你的環境中工作。另外,如果您不處於內聯模式,則在末尾添加了顯式的plt.show()。這就是爲什麼你沒有看到任何情節。 –

+0

工程就像一個魅力。感謝您的幫助! – drdot