Ajuste gaussiano para Python

Eu estou tentando encaixar um Gaussian para meus dados (que já é um gaussian áspero). Eu já tomei o conselho daqueles aqui e tenteicurve_fit eleastsq mas acho que estou sentindo falta de algo mais fundamental (em que não tenho idéia de como usar o comando). Aqui está uma olhada no roteiro que eu tenho até agora

import pylab as plb
import matplotlib.pyplot as plt

# Read in data -- first 2 rows are header in this example. 
data = plb.loadtxt('part 2.csv', skiprows=2, delimiter=',')

x = data[:,2]
y = data[:,3]
mean = sum(x*y)
sigma = sum(y*(x - mean)**2)

def gauss_function(x, a, x0, sigma):
    return a*np.exp(-(x-x0)**2/(2*sigma**2))
popt, pcov = curve_fit(gauss_function, x, y, p0 = [1, mean, sigma])
plt.plot(x, gauss_function(x, *popt), label='fit')

# plot data

plt.plot(x, y,'b')

# Add some axis labels

plt.legend()
plt.title('Fig. 3 - Fit for Time Constant')
plt.xlabel('Time (s)')
plt.ylabel('Voltage (V)')
plt.show()

O que eu ganho com isso é uma forma gaussiana que é meus dados originais e uma linha reta horizontal.

Além disso, gostaria de plotar meu gráfico usando pontos, em vez de conectá-los. Qualquer entrada é apreciada!

questionAnswers(6)

yourAnswerToTheQuestion