我对 matplotlib 的 hist() 函数有疑问。
我正在编写代码来绘制值从 0 到 1 不等的数据直方图。例如:
values = [0.21, 0.51, 0.41, 0.21, 0.81, 0.99]
bins = np.arange(0, 1.1, 0.1)
a, b, c = plt.hist(values, bins=bins, normed=0)
plt.show()
上面的代码生成了一个正确的直方图(我无法发布图像,因为我没有足够的声誉)。在频率方面,它看起来像:
[0 0 2 0 1 1 0 0 1 1]
我想将此输出转换为离散概率质量函数,即对于上面的示例,我想获得以下频率值:
[ 0. 0. 0.333333333 0. 0.166666667 0.166666667 0. 0. 0.166666667 0.166666667 ] # each item in the previous array divided by 6)
我想我只需要将 hist() 函数中的参数更改为“normed=1”。但是,我得到以下直方图频率:
[ 0. 0. 3.33333333 0. 1.66666667 1.66666667 0. 0. 1.66666667 1.66666667 ]
这不是我所期望的,我不知道如何获得总和应该为 1.0 的离散概率质量函数。在以下链接(链接到问题)中提出了类似的问题,但我认为问题没有得到解决。
我提前感谢您的帮助。