Я новичок в 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()