python:在顶部绘制带有函数线的直方图

标签 python matplotlib scipy

我正在尝试使用 SciPy 进行统计,使用 matplotlib 进行绘图,在 Python 中进行一些分布绘图和拟合。我在创建直方图等方面运气不错:

seed(2)
alpha=5
loc=100
beta=22
data=ss.gamma.rvs(alpha,loc=loc,scale=beta,size=5000)
myHist = hist(data, 100, normed=True)

enter image description here

太棒了!

我什至可以采用相同的 gamma 参数并绘制概率分布函数的线函数(经过一些谷歌搜索后):

rv = ss.gamma(5,100,22)
x = np.linspace(0,600)
h = plt.plot(x, rv.pdf(x))

enter image description here

我将如何绘制直方图 myHist 并将 PDF 行 h 叠加在直方图之上?我希望这是微不足道的,但我一直无法弄清楚。

最佳答案

只需将两部分放在一起即可。

import scipy.stats as ss
import numpy as np
import matplotlib.pyplot as plt
alpha, loc, beta=5, 100, 22
data=ss.gamma.rvs(alpha,loc=loc,scale=beta,size=5000)
myHist = plt.hist(data, 100, normed=True)
rv = ss.gamma(alpha,loc,beta)
x = np.linspace(0,600) 
h = plt.plot(x, rv.pdf(x), lw=2)
plt.show()

enter image description here

为确保您在任何特定的绘图实例中获得所需的内容,请先尝试创建一个figure 对象

import scipy.stats as ss
import numpy as np
import matplotlib.pyplot as plt
# setting up the axes
fig = plt.figure(figsize=(8,8))
ax  = fig.add_subplot(111)
# now plot
alpha, loc, beta=5, 100, 22
data=ss.gamma.rvs(alpha,loc=loc,scale=beta,size=5000)
myHist = ax.hist(data, 100, normed=True)
rv = ss.gamma(alpha,loc,beta)
x = np.linspace(0,600)
h = ax.plot(x, rv.pdf(x), lw=2)
# show
plt.show()

关于python:在顶部绘制带有函数线的直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11315641/

相关文章:

python - 数据操作: Stemming from a inability to select lists

scipy - scipy.sparse.linalg.lsmr和scipy.sparse.linalg.lsqr之间的区别

python - 如何计算给定波的频率和时间

python - 为多维数组添加虚拟维度

重启后 Raspberry Pi 上的 Python 虚拟环境错误

python - 了解 `conda install`( channel 和包)

python-2.7 - 阶跃直方图中的列顺序颠倒

python - 有没有办法在 pyplot 极坐标图中指定角轴上的轴单位?

带有线条颜色渐变和颜色条的python matplotlib

python - 在 Python 中更改对象的父类(super class)