Как нормализовать гистограмму pyplot?

Х​очу построить гистограмму распределения среднего выборки для экспоненциального распределения через pyplot hist.

Параметр density выставил на True. Согласно документации, именно он должен нормализовать гистограмму к 1. Однако, результат мне непонятен:

expon_rv = sts.expon(loc = 0, scale = 1)
sample = expon_rv.rvs(1000)

n2 = 10
sample_2_mean = []
for k in range(1000):
    sample_2 = np.random.choice(sample, n2)
    sample_2_mean.append(np.mean(sample_2))

plt.hist(sample_2_mean, bins = 20, density = True)

введите сюда описание изображения


Ответы (2 шт):

Автор решения: MaxU

При указании параметра density=True - суммарная площадь прямоугольников будет равна единице. Т.е. вы получаете график плотности вероятностей. Если перемножить высоту на ширину каждого прямоугольника и сложить все полученные площади - мы должны получить 1.0.

→ Ссылка
Автор решения: strawdog

Я так понимаю, товарищу нужно что-то типа этого:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import PercentFormatter
import scipy.stats as sts

expon_rv = sts.expon(loc = 0, scale = 1)
sample = expon_rv.rvs(1000)

n2 = 10
sample_2_mean = []
for k in range(1000):
    sample_2 = np.random.choice(sample, n2)
    sample_2_mean.append(np.mean(sample_2))

weights = [x/sum(sample_2_mean) for x in sample_2_mean]
plt.hist(sample_2_mean, bins = 20, weights=weights)
plt.gca().yaxis.set_major_formatter(PercentFormatter(1)) #для отображения в процентах, а не в долях

получится:

введите сюда описание изображения

→ Ссылка