ajustar dos gaussianos a un histograma de un conjunto de datos, python

Tengo un conjunto de datos en python. Estoy trazando esto como un histograma, este diagrama muestra una distribución bimodal, por lo tanto, estoy tratando de trazar dos perfiles gaussianos sobre cada pico en la bimodalidad.

Si utilizo el siguiente código se requiere que tenga dos conjuntos de datos con el mismo tamaño. Sin embargo, solo tengo un conjunto de datos, y esto no se puede dividir por igual. ¿Cómo puedo encajar estos dos gaussianos?

from sklearn import mixture
import matplotlib.pyplot
import matplotlib.mlab
import numpy as np
clf = mixture.GMM(n_components=2, covariance_type='full')
clf.fit(yourdata)
m1, m2 = clf.means_
w1, w2 = clf.weights_
c1, c2 = clf.covars_
histdist = matplotlib.pyplot.hist(yourdata, 100, normed=True)
plotgauss1 = lambda x: plot(x,w1*matplotlib.mlab.normpdf(x,m1,np.sqrt(c1))[0], linewidth=3)
plotgauss2 = lambda x: plot(x,w2*matplotlib.mlab.normpdf(x,m2,np.sqrt(c2))[0], linewidth=3)
plotgauss1(histdist[1])
plotgauss2(histdist[1])

Respuestas a la pregunta(1)

Su respuesta a la pregunta