【问题标题】:SciPy stats Gamma PDF - unable to successfully shade area under PDF curveSciPy stats Gamma PDF - 无法成功遮蔽 PDF 曲线下的区域
【发布时间】:2020-03-04 11:14:54
【问题描述】:

我一直在尝试使用多边形补丁对 Gamma 分布 PDF 下的区域进行着色,但无论我做什么,阴影区域都不会与 PDF 的曲线对齐。多边形顶点直接从相同的 gamma 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()

【问题讨论】:

    标签: python numpy scipy statistics


    【解决方案1】:

    如果您不将 xy 数组都提供给 plot 函数,则它假定 x 的值为 0、1、2、...len(y)-1。这些不是您的 PDF 绘图的正确 x 值。

    改变

    ax.plot(y, "r-")
    

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

    以便使用正确的x 值。

    有了这个变化(并且在将图形大小更改为 (10, 5) 之后),我得到了这个图:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-15
      • 1970-01-01
      • 2016-11-29
      相关资源
      最近更新 更多