我一直在尝试使用多边形补丁对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()发布于 2020-03-04 11:05:28
如果您没有将x和y数组都提供给plot函数,它将假定x值为0、1、2、... len(y)-1。这些不是您的x绘图的正确PDF值。
变化
ax.plot(y, "r-")至
ax.plot(x, y, "r-")以便使用正确的x值。
通过这个更改(在将图形大小更改为(10,5)之后),我得到了这个图:

https://stackoverflow.com/questions/60517898
复制相似问题