Я хотел бы сделать гистограмму со смесью 1D гауссов в качестве рисунка.
Спасибо Мэн за изображение.
Моя гистограмма такова:
У меня есть файл с большим количеством данных (4 000 000 чисел) в столбце:
1.727182
1.645300
1.619943
1.709263
1.614427
1.522313
И я использую следующий сценарий с изменениями, которые сделали Мэн и Лорд Справедливости:
from matplotlib import rc
from sklearn import mixture
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
import matplotlib.ticker as tkr
import scipy.stats as stats
x = open("prueba.dat").read().splitlines()
f = np.ravel(x).astype(np.float)
f=f.reshape(-1,1)
g = mixture.GaussianMixture(n_components=3,covariance_type='full')
g.fit(f)
weights = g.weights_
means = g.means_
covars = g.covariances_
plt.hist(f, bins=100, histtype='bar', density=True, ec='red', alpha=0.5)
plt.plot(f,weights[0]*stats.norm.pdf(f,means[0],np.sqrt(covars[0])), c='red')
plt.rcParams['agg.path.chunksize'] = 10000
plt.grid()
plt.show()
И когда я запускаю сценарий, у меня есть следующий сюжет:
Итак, я понятия не имею, как поставить начало и конец всех гауссов, которые должны быть там.Я новичок в Python, и я путаю с тем, как использовать модули.Пожалуйста, можете ли вы помочь мне и направить меня, как я могу сделать этот сюжет?
Большое спасибо