2014-05-01 39 views
0

假設我有以下數組:[1,1,1,2,2,40,60,70,75,80,85,87,95],我想基於以下分箱創建一個直方圖 - x<=2[3<=x<=80][x>=81]hist() - 如何強制相等的bin寬度?

如果我這樣做:arr.hist(bins=(0,2,80,100))我得到的箱子是在不同的寬度(基於他們的x範圍)。我希望它們代表不同的尺寸範圍,但在直方圖中顯示的寬度相同。這是否有可能以優雅的方式?

我能想到加入這個新列(控股將根據我想要的界限來計算的bin ID),但真的不喜歡這種解決方案..

謝謝!

+0

請參見[this](http://stackoverflow.com/q/22461355/625914) –

回答

1

聽起來像你想要一個條形圖;您可以使用bar

import numpy as np 
import matplotlib.pyplot as plt 
arr=np.array([1,1,1,2,2,40,60,70,75,80,85,87,95]) 
h=np.histogram(arr,bins=(0,2,80,100)) 
plt.bar(range(3),h[0],width=1) 
xlab=['x<=2', '3<=x<=80]', 'x>=81'] 
plt.xticks(arange(0.5,3.5,1),xlab) 
相關問題