python直方图的拟合_用python拟合直方图

下面是一个使用scipy.optimize拟合非线性函数(如高斯函数)的示例,即使数据位于范围不好的直方图中,这样简单的平均估计也会失败。偏移常数也会导致简单的正态统计量失败(对于纯高斯数据,只需删除p[3]和c[3])。from pylab import *

from numpy import loadtxt

from scipy.optimize import leastsq

fitfunc = lambda p, x: p[0]*exp(-0.5*((x-p[1])/p[2])**2)+p[3]

errfunc = lambda p, x, y: (y - fitfunc(p, x))

filename = "gaussdata.csv"

data = loadtxt(filename,skiprows=1,delimiter=',')

xdata = data[:,0]

ydata = data[:,1]

init = [1.0, 0.5, 0.5, 0.5]

out = leastsq( errfunc, init, args=(xdata, ydata))

c = out[0]

print "A exp[-0.5((x-mu)/sigma)^2] + k "

print "Parent Coefficients:"

print "1.000, 0.200, 0.300, 0.625"

print "Fit Coefficients:"

print c[0],c[1],abs(c[2]),c[3]

plot(xdata, fitfunc(c, xdata))

plot(xdata, ydata)

title(r'$A = %.3f\ \mu = %.3f\ \sigma = %.3f\ k = %.3f $' %(c[0],c[1],abs(c[2]),c[3]));

show()

输出:A exp[-0.5((x-mu)/sigma)^2] + k

Parent Coefficients:

1.000, 0.200, 0.300, 0.625

Fit Coefficients:

0.961231625289 0.197254597618 0.293989275502 0.65370344131

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值