python curve_fit返回行

时间:2015-02-13 13:12:34

标签: python matplotlib curve-fitting gaussian

任务是使用高斯曲线拟合数据范围(X和Y)的一些块(cand_peaks_xs)。问题是结果是线性的。

   for i in cand_peaks_xs:
                # approximate gauss
                x = X[i[0]:i[1]]
                y = Y[i[0]:i[1]]
                try:
                    mean = numpy.mean(x)
                    sigma = numpy.std(x)
                    param, cov = curve_fit(self.gauss, x, y, p0=[y.max(), mean, sigma])
                    self.ax1.plot(x, self.gauss(x, *param), c='r')
                except:
                    pass

The result of work. Red lines are curves, built with the algorithm 这里的红线是我用这个程序得到的。

这是高斯的定义

def gauss(self, x, a, x0, sigma):
    return a*exp(-(x-x0)**2/(2*sigma**2))

1 个答案:

答案 0 :(得分:0)

def gauss(self, x, a, x0, sigma):
    return a*numpy.exp(-(x-x0)**2/(2*sigma**2))