2012-06-04 66 views
0

我有一個數字列表。列表類似於[0,0,1,0,1 ....]。目前它只有二進制數字,但稍後它也可以有十進制數字。我想在列表中繪製該序列的直方圖。 當我使用matplotlib庫的標準hist funcion時,我只得到兩個bars.It計算全零和全1,並向我顯示帶有兩個小節的直方圖。但我想以不同的方式進行繪畫。 我想要一個沒有酒吧=列表長度 和 每個酒吧的高度=在(位置=酒吧#)列表中的值。Python中的直方圖

下面是代碼:

def plot_histogram(self,li_input,): 
    binseq = numpy.arange(len(li_input)) 
    tupl = matplotlib.pyplot.hist(li_input,bins=binseq) 
    matplotlib.pyplot.show() 

li_input是上面討論的列表。

我可以做一個討厭的方式,如:

li_input_mod = [] 
    for x in range(len(li_input)): 
    li_input_mod += [x]*li_input[x] 

,然後繪製它,但我想要的東西更好。

+0

所以基本上你想有一個情節像你想創建一個bar chart這聽起來我。 –

+0

是喜歡直方圖 – Manish

回答

3

你描述的行爲是直方圖工作的方式;它顯示了你的價值分佈。

import matplotlib.pyplot as plt 

x = [0,0,1,0,1,1,0,1,1,0,0,0,1] 
plt.bar(range(len(x)), x, align='center') 

這將產生:

Bar chart