Я думаю, что вы пытаетесь показать гистограммы распределения Рэлея, на которые вы накладываете линию, представляющую распределение. Если это так, вам нужно сгенерировать некоторые значения для гистограмм, поскольку linspace - это просто диапазон значений x. «гистограмма» не является чем-то полезным для гистограммы. Чтобы сгенерировать значения, полезные для гистограммы, вы можете использовать следующий подход Монте-Карло (который вы ДОЛЖНЫ добавить в свой код, потому что, например, «y» определено в вашем коде).
import random
maxy=max(y)
lval=[]
for i in range(10000):
## pick a random y belonging to selection
xv=random.choice(selection)
yv=random.random()*maxy
yral=rayleigh.pdf(xv, RAYLEIGH_ARG_1, RAYLEIGH_ARG_2)
if(yv<=yral):
lval.append(xv)
plt.plot(selection, y, "r-", label="Density")
plt.hist(lval, bins=10, density=True, label="Histogram", rwidth=0.1)
Результирующий график следующий:
Имейте в виду, что это приблизительное значение.
Другое возможное решение (я только что проверил руководство ), когда генератор доступен, чтобы вызвать rvs.
r=rayleigh.rvs(loc=RAYLEIGH_ARG_1, scale=RAYLEIGH_ARG_2, size=1000)
plt.plot(selection, y, "r-", label="Density")
plt.hist(r, bins=10, density=True, label="Histogram", rwidth=0.1)