我使用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 :(得分:2)
最高直方图bin以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
。