2013-03-02 40 views
9

我感到困惑的matplotlib HIST功能。是如何pyplot直方圖塊解釋?

的文檔解釋:

如果值的序列,所使用的下界的二進制位的值。

但是,當我有兩個值序列即[0,1],我只得到1 bin。 而當我有三個像這樣:

plt.hist(votes, bins=[0,1,2], normed=True) 

我只有兩箱。我的猜測是,最後一個值只是一個上限的最後一個垃圾桶。

有沒有辦法在最後斌值的「休息」時,除了而是一個非常大的價值嗎? (或者換句話說,而不使其斌比別人大得多)

這似乎是最後的單元值包含在最後斌

votes = [0,0,1,2] 
plt.hist(votes, bins=[0,1]) 

這給了我高度3的一個垃圾桶。即0,0,1。 While:

votes = [0,0,1,2] 
plt.hist(votes, bins=[0,1,2]) 

給我兩個箱子,每個箱子裏有兩個。 我發現這個櫃檯intuative,即增加一個新賓改變別人的widthlimits。

votes = [0,0,1] 
plit.hist[votes, bins=2) 

yeilds兩個bin大小2和1。這些似乎對0,5由於x軸從0變爲1

應該如何倉陣列被解釋被拆分?數據如何分裂?

+1

你使用的是什麼版本的mpl?前一段時間'numpy'的hist函數發生了一些變化,這會改變'bin'的含義,所以確保您正在查看與您正在使用的版本相匹配的文檔非常重要。 – tacaswell 2013-03-02 18:04:37

+0

我正在使用版本1.6.1。謝謝你的提示。 – 2013-03-02 18:39:53

回答

15
votes = [0, 0, 1, 2] 
plt.hist(votes, bins=[0,1]) 

這給你高度3的一個二進制位,因爲這將數據分成一個單個二進制位的時間間隔:[0,1]。它把成箱的值:0,0,和1

votes = [0, 0, 1, 2] 
plt.hist(votes, bins=[0, 1, 2]) 

這給你與倉的直方圖與間隔:[0,1和[1,2]; 所以你必須在第一倉2項(0和0),而在第2箱2項(1和2)。

如果您嘗試繪圖:

plt.hist(votes, bins=[0, 1, 2, 3]) 

數據分解成箱背後的想法是一樣的: 你會得到三個區間: [0,1; [1,2 [; [2,3],你會注意到,值2改變了它的bin,以間隔[2,3]進入bin(而不像前面的例子那樣停留在bin [1,2]中)。

總之,如果您在bin參數中有一個有序數組,如: [i_0,i_1,i_2,i_3,i_4,...,1-N] 將創建二進制位:
[I_0,I_1 [
[I_1,I_2 [
[I_2,I_3 [
[I_3,1-4 [
...
[I_(正1),i_n]

根據括號中的每個開放或關閉的邊界。

+6

另一種更清晰/行爲更好的方法是從您的箱子邊緣減去0.5(如果您希望'votes'中的值爲整數),那麼您可以側開關於打開/關閉設置的這些詳細信息。 – tacaswell 2013-03-02 18:10:44

+0

也對+1進行了超清晰解釋開放/封閉設置問題的詳細信息。 – tacaswell 2013-03-02 18:13:51

+0

一個明確的解釋。謝謝! – 2013-03-02 18:40:27