Я пытаюсь построить нормализованную гистограмму, используя python, но сумма не равна 1.
, например
import numpy as np
import matplotlib.pyplot as plt
x = np.random.randn(1000)
o = plt.hist(x, stacked=True, density=True)
print(sum(o[0])
# 1.5499931498813149
Поскольку ширина ячейки не равна единице, если вместо этого я проверяю площадь под кривой, она действительно равна 1, т.е.
print(sum(o[0]*np.diff(o[1]))
# 1.0
Но в разделе параметров density
команды matplotlib manual указано, что
Если stacked
также True
, сумма гистограмм нормализуется до 1.
Почему именно тогда сумма гистограмм не нормируется на 1? И почему мне все еще нужно умножить его на ширину корзины? Что я читаю / делаю неправильно?
P.S. Я прошел через повторяющиеся вопросы, но они относятся к более старым версиям matplotlib, когда параметр normed
не устарел. Поэтому я не думаю, что они больше полезны.