2017-05-08 84 views
0

我使用pyplot绘制直方图,并发现bin计数的总和不等于元素的总和。哪里可能出现错误?Pyplot bin计数的总和不等于元素的数量

data = [1.272499, 1.3480160000000001, 1.42106, 1.431921, 0.95531699999999997, 1.167071, 1.2155849999999999, 0.716526, 1.356554] 

n, bins, patches = plt.hist(np.array(data), bins = np.arange(-0.2,1.6,0.2)) 
assert np.sum(n) == len(data) 

在这里,n是:

[ 0. 0. 0. 0. 1. 1. 1. 4.] 
7 9 
+0

Nvm,我指定箱子的范围太小。 –

+0

对不起,我没有看到你在发布我的答案之前已经发现错误。 – ml4294

回答

2

最高的直方图仓在1.4结束,因此不包含高于1.4的两个值。您应该使用np.arange(-0.2, 1.8, 0.2)。这产生了数组[-0.2 0. 0.2 0.4 0.6 0.8 1. 1.2 1.4 1.6],你的断言将是True