2012-11-09 83 views
0

可能是一個簡單的問題,只是簡單的修復,但我很疑惑binning實際上是如何工作的。我想繪製一個相當簡單的直方圖。 x軸應該只有兩個值0和1,而y軸的浮點數在0到1.0之間,表示每個值的頻率。 0和1都是數組中唯一的值,但是當我顯示我的直方圖時,箱子似乎沒有與0和1對齊,並且x軸上有多個不需要的刻度線。我如何製作這個圖表,在x軸(0和1)上只顯示兩個刻度,並且每個這些值的相應頻率列在刻度上正確顯示?用pyplot正確顯示垃圾箱

這裏是我的代碼:

trials = [] 
for i in range (m): 
    trials.append(bernoulli_trial(p)) 
plt.figure(1) 
plt.hist(trials, bins=2, align="mid", weights=np.zeros_like(trials) + 1./len(trials)) 
plt.ylim(0,1.0) 
plt.title("Bernoulli Distribution with p = " + str(p)) 
plt.xlabel("Outcome") 
plt.ylabel("Probability")  
plt.show() 

任何人都可以提供上,我做錯了什麼在這裏任何見解?

+0

試試這個回答:http://stackoverflow.com/a/1144137/1290420 – gauden

回答

1
plt.figure(1) 
plt.hist(trials, bins=2, align="mid", 
     weights=np.zeros_like(trials) + 1./len(trials)) 


# ------------------------------ 
# New lines to add tick marks as requested 
tick_locs = [0.25, 0.75] 
tick_lbls = ['0','1'] 
plt.xticks(tick_locs, tick_lbls) 
# ------------------------------ 

plt.ylim(0,1.0) 
plt.title("Bernoulli Distribution with p = " + str(p)) 
plt.xlabel("Outcome") 
plt.ylabel("Probability")  
plt.show() 
+0

LOL哇完美修復。我之前曾嘗試過使用xticks,但我想我可能會錯誤地格式化它,所以它真的與佈局混淆。非常感謝! – maniciam