множественная вершина гауссовой аппроксимации в питоне - PullRequest
0 голосов
/ 02 марта 2019

Я новичок в Python.Я пытаюсь построить кривую с моими данными и сделать эту кривую гауссовой.Я могу сделать примерку для участков с одним пиком (я полагаю).Вот код, который я могу написать (большая часть взята из Интернета), но этот код, на мой взгляд, только для одного пика.Как я могу разместить свои данные с несколькими пиками в гауссовском?Большое спасибо.

import pylab as plb
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from scipy import asarray as ar,exp
import numpy as np

x = ar(['data'])
y = ar(["data"])

n = len(x)                         
mean = sum(x*y)/sum(y)                   
sigma = np.sqrt(sum(y * (x - mean)**2) / sum(y))       

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

popt,pcov = curve_fit(gaus,x,y,p0=[1,mean,sigma])

plt.plot(x,y,'b+:',label='data')
plt.plot(x,gaus(x,*popt),'ro:',label='fit')
plt.legend()
plt.title('Fig. 3 - Fit for Voltage vs Current For Exciting Hg Atom')
plt.xlabel('Voltage Applied (V)')
plt.ylabel('Current (nA)')
plt.show()
...