You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在LMFIT多模型拟合中提取pv1_model数据单独绘图?

提取单个拟合模型数据并绘制填充曲线的解决方案

问题背景

用户提供的多组分拟合代码如下:

x_1=np.array(x)
y_1=np.array(y)

exp_model = ExponentialModel(prefix='exp_')
pv1_model = PseudoVoigtModel(prefix='pv1_')
pv2_model = PseudoVoigtModel(prefix='pv2_')
pv3_model = PseudoVoigtModel(prefix='pv3_')

mod = exp_model+pv1_model+pv2_model+pv3_model

pars=exp_model.guess(y_1, x=x_1) #background
pars.update(pv1_model.make_params())
pars['pv1_center'].set(value=1483, min=1433, max=1533)
pars.update(pv2_model.make_params())
pars['pv2_center'].set(value=1150, min=1100, max=1200)
pars.update(pv3_model.make_params())
pars['pv3_center'].set(value=1050, min=1000, max=1100)

out = mod.fit(y_1, pars, x=x_1)

print(out.fit_report())

需求是从拟合结果中提取pv1_model的单独拟合数据,用于绘制该模型的拟合曲线并填充图形,但out.best_fit是所有模型的拟合值总和,需要解决方法。参考示例图为:一张包含原始数据点、总拟合曲线、单个组分拟合曲线及填充区域的光谱拟合图。

解决方案

直接利用拟合结果中的最优参数,单独调用对应模型的计算方法即可,步骤如下:

  • 提取pv1_model的最优参数
    拟合结果out中包含所有模型的最优参数,通过前缀pv1_筛选出对应参数,构建pv1_model的参数集:

    pv1_params = out.params.prefix_reduce('pv1_')
    
  • 计算pv1_model的单独拟合值
    使用筛选后的参数,传入pv1_model的eval方法计算x轴对应的拟合y值:

    pv1_fit = pv1_model.eval(pv1_params, x=x_1)
    
  • 绘制pv1_model的曲线并填充
    结合原始数据和其他拟合结果,使用matplotlib绘制曲线并填充区域,示例代码:

    import matplotlib.pyplot as plt
    
    # 绘制原始数据
    plt.scatter(x_1, y_1, label='原始数据', s=5)
    # 绘制总拟合曲线
    plt.plot(x_1, out.best_fit, label='总拟合曲线', color='black')
    # 绘制pv1_model拟合曲线
    plt.plot(x_1, pv1_fit, label='pv1组分拟合曲线', color='red')
    # 填充pv1拟合曲线与基线之间的区域
    plt.fill_between(x_1, 0, pv1_fit, color='red', alpha=0.3)
    
    plt.xlabel('X轴')
    plt.ylabel('Y轴')
    plt.legend()
    plt.show()
    
  • 补充说明
    如果需要结合背景模型(exp_model)绘制组分曲线(即组分叠加在背景上的形态),可同时计算背景值并相加:

    exp_params = out.params.prefix_reduce('exp_')
    exp_fit = exp_model.eval(exp_params, x=x_1)
    pv1_with_bg = exp_fit + pv1_fit
    # 绘制带背景的pv1组分曲线
    plt.plot(x_1, pv1_with_bg, label='pv1组分(含背景)', color='orange')
    

内容的提问来源于stack exchange,提问作者user25339472

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 03:12:43