python - 用偏斜高斯拟合直方图

标签 python scipy histogram curve-fitting

我想用倾斜的高斯拟合直方图。 我从文本文件中获取数据:

rate, err = loadtxt('hist.dat', unpack = True)

然后将它们绘制成直方图:

plt.hist(rate, bins= 128)

这个直方图有一个倾斜的高斯形状,我想要适应。 我可以用一个简单的高斯函数来做到这一点,因为 scipy 包含函数,但没有倾斜。我该如何继续?

可能,返回的拟合优度测试是最好的。

最佳答案

您可能会发现 lmfit ( http://lmfit.github.io/lmfit-py/) 很有用。这有一个内置的偏斜高斯模型。你的问题可能很简单

from lmfit.models import SkewedGaussianModel

xvals, yvals = read_your_histogram()

model = SkewedGaussianModel()

# set initial parameter values
params = model.make_params(amplitude=10, center=0, sigma=1, gamma=0)

# adjust parameters  to best fit data.
result = model.fit(yvals, params, x=xvals)

print(result.fit_report())
pylab.plot(xvals, yvals)
pylab.plot(xvals, result.best_fit) 

这将报告参数振幅、中心、sigma(对于正态高斯)和 gamma(偏度因子)的值和不确定性。

关于python - 用偏斜高斯拟合直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25903487/

相关文章:

python - 在python中只用多个参数拟合函数的一个参数

r - R 中的直方图 1 个 bin 仅用于零

python - Django --CSRF token 缺失或不正确

python - 如何在 Python 中使用 unicode

python - 将具有常量值的列添加到 Pandas 数据框

python scipy Delaunay 绘图点云

python - 无法在脚本中导入 python 模块,但可以在命令提示符中导入

python - Matplotlib 直方图不显示分布细节

c - 如何获得pthreads的正确执行顺序

python - While 在 Python 中用单引号循环一个条件