Вы можете использовать суперпозицию двух гауссиан, чтобы получить лучшую подгонку.
def gaus(x,a,x0,sigma, b, x1, sigma1):
return a*exp(-(x-x0)**2/(2*sigma**2)) + b*exp(-(x-x1)**2/(2*sigma1**2))
popt,pcov = curve_fit(gaus,x,y,p0=[1.6, 380, 10, 1.5, 690, 10])
Здесь 1.6, 380, 10, 1.5, 690, 10
- приблизительные начальные предположения для высоты, среднего значения и ширины для первого и второго четкого пика вdata.
Вы можете попробовать использовать трех гауссиан, чтобы получить лучшую подгонку. Здесь - один похожий пост.