【发布时间】:2018-02-03 21:42:01
【问题描述】:
我对来自 matplotlib.pyplot.hist 的 normed 参数以及它为什么不改变绘图输出感到困惑:
如果为 True,则返回元组的第一个元素将是计数 归一化以形成概率密度,即
n/(len(x)'dbin),即 直方图的积分总和为 1。如果stacked也是 True, 直方图之和归一化为 1。默认为假
看起来很清楚。我见过它称为密度函数、概率密度等。
即给定大小为 1000 在 [0, 10] 中的随机均匀分布:
指定 normed=True 应将 y 轴更改为密度轴,其中条的总和为 1.0:
但实际上它什么也没做:
r = np.random.uniform(size=1000)
plt.hist(r, normed=True)
此外:
print(plt.hist(r, normed=True)[0].sum())
# definitely not 1.0
10.012123595
所以,我已经看到@Carsten König 的answers 提出了类似的问题,并不要求解决方法。我的问题是,normed 的目的是什么?我是否误解了这个参数的实际作用?
matplotlib documentation 甚至给出了一个名为“histogram_percent_demo”的示例,其中积分看起来会超过 1000%。
【问题讨论】:
标签: python matplotlib