matplotlib中的直方图工作不正确

时间:2013-09-07 11:15:01

标签: python graph numpy matplotlib

例如:

import matplotlib.pyplot as plt  
data = [0.6, 0.8, 0.4, 0.2, 0.6, 0.8, 0.4, 0.2]  
plt.hist(data, bins=20, range=[0.0, 1.0], normed=True)  
plt.show()  

在此之后我采用直方图,每个项目的频率约为5,而不是0.25%。我怎么能解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以通过分配plt.hist来检查直方图结果,如下所示:

out = plt.hist(data, bins=20)
print out

打印:

(array([2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2]), 
 array([0.2 , 0.23, 0.26, 0.29, 0.32, 0.35, 0.38, 0.41, 0.44, 0.47, 
        0.5 , 0.53, 0.56, 0.59, 0.62, 0.65, 0.68, 0.71, 0.74, 0.77, 0.8 ]),
<a list of 20 Patch objects>)

这是正确的。 也:

>>> plt.hist(data, bins=4)
    (array([ 2.,  2.,  2.,  2.]), array([ 0.2 ,  0.35,  0.5 ,  0.65,  0.8 ]), 
    <a list of 4 Patch objects>)