Py-*_*ser 3 python histogram curve-fitting scipy
我想用倾斜的高斯拟合直方图。我从文本文件中获取数据:
rate, err = loadtxt('hist.dat', unpack = True)
Run Code Online (Sandbox Code Playgroud)
然后将它们绘制为直方图:
plt.hist(rate, bins= 128)
Run Code Online (Sandbox Code Playgroud)
这个直方图有一个偏斜的高斯形状,我想适合。我可以用一个简单的高斯来做到这一点,因为scipy包含了这个函数,但没有倾斜。我该如何继续?
可能返回的拟合优度测试是最好的。
小智 5
您可能会发现 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)
Run Code Online (Sandbox Code Playgroud)
这将报告参数幅度、中心、西格玛(对于正常高斯)和伽玛(偏度因子)的值和不确定性。
| 归档时间: |
|
| 查看次数: |
7697 次 |
| 最近记录: |