このコードから、 "out.best_fit"で最終フィットを印刷できます。私が今やりたいことは、各ピークを個々のガウス関数それらのすべてが1つの単一の曲線にマージされているのではない。python-lmfitでフィッティングしたガウス曲線の後に個々のピークをプロットする
from pylab import *
from lmfit import minimize, Parameters, report_errors
from lmfit.models import GaussianModel, LinearModel, SkewedGaussianModel
from scipy.interpolate import interp1d
from numpy import *
fit_data = interp1d(x_data, y_data)
mod = LinearModel()
pars = mod.make_params(slope=0.0, intercept=0.0)
pars['slope'].set(vary=False)
pars['intercept'].set(vary=False)
x_peak = [278.35, 334.6, 375]
y_peak = [fit_data(x) for x in x_peak]
i = 0
for x,y in zip(x_peak, y_peak):
sigma = 1.0
A = y*sqrt(2.0*pi)*sigma
prefix = 'g' + str(i) + '_'
peak = GaussianModel(prefix=prefix)
pars.update(peak.make_params(center=x, sigma=1.0, amplitude=A))
pars[prefix+'center'].set(min=x-20.0, max=x+20.0)
pars[prefix+'amplitude'].set(min=0.0)
mod = mod + peak
i += 1
out = mod.fit(y_data, pars, x=x_data)
plt.figure(1)
plt.plot(x_data, y_data)
plt.figure(1)
plt.plot(x_data, out.best_fit, '--')
グローバルフィットのプロット:私はあなたがフィットした後にこれをしたいと思います
'x_data'と' y_data'とは何ですか? – Cleb
申し訳ありませんが、それらはxとyのデータの2つのリストです。 – TMR
'out'からフィットパラメータを取得できませんか?彼らは、フィットのy値を計算するためにどこかに格納しなければなりません。次に、フィットパラメータを抽出すると、単一のガウス分布をプロットすることができます。 –