SciPy stats Gamma PDF - невозможно успешно закрасить область под кривой PDF - PullRequest
1 голос
/ 04 марта 2020

Я пытался закрасить область под PDF с гамма-раздачей, используя многоугольный патч, но независимо от того, что я делаю, заштрихованная область не совпадает с кривой PDF. Вершины многоугольника генерируются непосредственно из одной и той же гамма-функции pdf. Что здесь происходит?

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import gamma
from matplotlib.patches import Polygon

x = np.linspace (0, 100, 200)
fig, ax = plt.subplots(1,1, figsize=(20,10))
ax.set_title('Gamma Distribution - Probability Density Function')

y = gamma.pdf(x, a=9, scale = 0.5) #alpha=9, theta =0.5

ax.plot(y, "r-")
ax.legend(['α =9, λ=2'])

ax.set_ylim(0, 0.5)
ax.set_xlim(0,40)

verts = [*zip(x,y)]
poly = Polygon(verts, facecolor='0.9', edgecolor='0.5')
ax.add_patch(poly)


plt.show()

1 Ответ

2 голосов
/ 04 марта 2020

Если вы не передаете массивы x и y функции plot, это предполагает, что значения x равны 0, 1, 2, ... len(y)-1. Это не правильные значения x для вашего PDF-графика.

Измените

ax.plot(y, "r-")

на

ax.plot(x, y, "r-")

, чтобы использовать правильные значения x .

С этим изменением (и после изменения размера фигуры на (10, 5)) я получаю этот график:

plot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...