Пишем два примера для распределений Лапласа и Гаусса.
======================================
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
# Затем определите подходящую функцию и некоторый пример набора данных.
# Образец набора данных предназначен только для этого вопроса.
# Вы должны использовать свой набор данных и определить свою функцию,
# которую вы хотите установить
loc, scale = 0., 1.
x = np.random.laplace(loc, scale, 1000)
def laplacian(x,amplitude,loc,scale):
» » » » return amplitude*np.exp(-abs(x-loc)/scale)/(2.*scale)
# Обращение к np.histogram(x,bins='auto')
bin_heights, bin_borders = np.histogram(x, bins='auto')
bin_widths = np.diff(bin_borders)
bin_centers = bin_borders[:-1] + bin_widths / 2
popt, _ = curve_fit(laplacian, bin_centers, bin_heights, p0=[1., 0., 1.])
x_interval_for_fit = np.linspace(bin_borders[0], bin_borders[-1], 10000)
plt.bar(bin_centers, bin_heights, width=bin_widths, label='histogram')
plt.plot(x_interval_for_fit,laplacian(x_interval_for_fit,*popt),label='fit',c='red')
plt.legend()
plt.show()
