相关文章推荐
慷慨的熊猫  ·  雷诺江铃发展受阻 ...·  1 年前    · 
纯真的皮带  ·  金华市博物馆·  1 年前    · 

此篇,我们来介绍对SERS拉曼光谱的拟合。

多峰拟合 python 多峰拟合是什么_基线

一、多峰拟合

1)准备数据。

如下图所示,我们找来了一个细胞的拉曼光谱,并截取了其中的一部分(图中数据表格与实际所使用的不符,实际中,我们已将660-1400 nm之外的数据删掉,而不是在作图时只显示660-1400 nm部分的波形,否则最后拟合的时候会出错)。

多峰拟合 python 多峰拟合是什么_数据_02

2)选择多峰拟合。

多峰拟合 python 多峰拟合是什么_基线_03

3)选择高斯拟合。

如下图所示,在弹出的多峰拟合面板中,Input默认输入将会是当前的Graph1图,无需改变,而Peak Function峰值拟合需要选择为Gauss高斯拟合。

多峰拟合 python 多峰拟合是什么_基线_04

4)选择需要拟合的峰。

接着,在图中有峰的位置双击鼠标左键,选择需要拟合的峰。如下图所示,在三个峰值处双击即可。选择完成后,点击Get Points获取点面板中的Fit即可。

多峰拟合 python 多峰拟合是什么_拟合_05

5)拟合完成。

此时,拟合完成之后,图中会出现四条新的曲线,分别是三个峰单独的峰和他们所累积起来的一条总的峰。由于四条曲线叠加在一起,所以看的不是很明显,只有总峰在最上层,因而清晰可见。同时,会有一个Reminder Message提示消息框出现,问我们是否要转向拟合报表。是或否都可以选,此时,我们选择Yes,可以去看看报表。

多峰拟合 python 多峰拟合是什么_数据_06

6)报表中的高斯参数。

此时查看拟合报表,可以发现每个峰都有一些相同的参数,其中y0代表峰的纵向偏移量,xc表示峰的横坐标,w表示尺度参数,A表示峰的面积,FWHM表示半峰宽,Height表示峰的高度。另外,y0+Height=峰值。

多峰拟合 python 多峰拟合是什么_拟合_07

高斯分布其实也就是我们学过的正态分布。那么,观察图中表格内的Equation公式:y=y0 + (A/(w*sqrt(PI/2)))*exp(-2*((x-xc)/w)^2),对比下图中的正太分布,我们发现这两者几乎是一致的。而区别在于一个设计到了A,即峰的面积。因而,我们在这里解释的w为尺度参数σ可能是不对的,但他们之间肯定是有关系的。

多峰拟合 python 多峰拟合是什么_数据_08

7)重新作图。

按照惯例,对数据进行分析后,一般会产生新的数据,因此,可以使用新的数据重新绘图。此时,将报表切换到nlfitpeaksCurve1拟合峰曲线分页,然后选择A和E列绘制折线图,即可完成拉曼光谱的曲线拟合分析及绘图。

多峰拟合 python 多峰拟合是什么_数据_09

如下图所示,为将横纵坐标的名称和单位等修改后的结果(之前可能没有提到过,在已经制图之后,仍可以在表格中修改所有参数,包括数值和名称,修改之后图中相应部分会自动变更)。

多峰拟合 python 多峰拟合是什么_拟合_10

二、手动拟合

1)原图重新绘制。

如下图所示,回到原始数据,并重新绘图。

多峰拟合 python 多峰拟合是什么_基线_11

2)打开峰值分析面板。

和上一篇一样,打开峰值分析面板。

多峰拟合 python 多峰拟合是什么_数据_12

3)选择拟合峰。

跟之前不同的是,此时需要选择拟合峰。

多峰拟合 python 多峰拟合是什么_基线_13

4)选择基线模式。

这里与上一篇不同的地方是,上一篇我们选择了用户自定义的形式拉平了基线(当然,此时也可以选择用户自定义基线模式),而此时,为了方便抑或是突出拟合的重点,我们选择常数的模式,即选择一个值作为基线所在的位置。如下图所示,一般我们可以选择最小值或是中值。注意这里,均值和中值产生的效果是不一样的,大家可自行尝试。

多峰拟合 python 多峰拟合是什么_基线_14

5)基线处理。

到了基线处理这一步,可以勾选上Auto Subtract Baseline自动减去基线和Auto Rescale自动调值选项,并进行下一步。

多峰拟合 python 多峰拟合是什么_数据_15

6)取消自动找峰。

如下图所示,在Find Peaks找峰这一步,取消Enable Auto Find自动找峰的选项,并点击Find开始手动寻峰。

多峰拟合 python 多峰拟合是什么_基线_16

7)双击选峰。

这一步和前面一样,双击可选择峰,点击Done完成选峰。

多峰拟合 python 多峰拟合是什么_基线_17

选择完后,图中会显示所选峰的位置。

多峰拟合 python 多峰拟合是什么_拟合_18

8) 拟合控制。

到了Fit Peaks (Pro)拟合峰这一步时,会自动发生一次拟合效果,如下图所示。

多峰拟合 python 多峰拟合是什么_基线_19

多次点击1 Iteration单次拟合实现多次拟合迭代之后,可以看到图中的曲线逐渐偏向原始数据的线条趋势。

多峰拟合 python 多峰拟合是什么_数据_20

点击1 Iteration右侧的Fit until converged拟合直到完全聚合,可自动完成多次的拟合迭代过程,直接完成拟合。如下图所示,图中的拟合曲线已经非常贴合原始数据线条了。

多峰拟合 python 多峰拟合是什么_数据_21

9)拟合报表。

如下图所示,拟合报表与前面的报表风格不同,但内容大致相同。

多峰拟合 python 多峰拟合是什么_基线_22

10)重新绘图。

同样,切换表格分页到FitPeakCurve1,这里与上一种方法得到的数据形式不太相同,对于每个峰都有自己的X横坐标。因此,如果要绘制整体的累加拟合曲线,则需选择Cumulative Fit Peak累积拟合峰和其自己的Independent Variable自变量,然后做折线图。

多峰拟合 python 多峰拟合是什么_数据_23

接着,改变相关名称之后的绘图结果如下所示。

多峰拟合 python 多峰拟合是什么_拟合_24

三、总结

回顾,此篇我们用到的功能有:多峰拟合、高斯拟合、查看拟合报表并理解高斯拟合参数、根据拟合数据重新绘图、峰值分析中的拟合峰、常量基线模式、拟合控制、单次拟合、完全拟合。



python操作openpyxl設置列寬 openpyxl 列宽

openpyxl实现excel自适应列宽 最近在做一些自动化生成excel的工作,为了提高excel的可读性,想要通过代码实现excel自适应列宽。查了一些资料,并没有找到相关的模块。所以,自己写了一个方法来适应列宽。 大概的思路就是,遍历每一列,找出每一列中长度最大的单元格,然后根据最大的单元格,更改此列的列宽。 设置A列,列宽为20 sheet.column_dimensions[

java 如何处理 xss 字符串 java xsl

XSLExTensible Stylesheet  Language -- 可扩展样式表语言 用于将 XML 文件转换为另外的文档(html 等),以及定义转换后文档显示的外观。 实际上包含了三种语言: XSL转换(XSL Transformations XSLT),XML路径语言(XPath),和 XSL格式化对象:XSL-FO XSLT: 将一个 xml 文档转换成为其他的文档类

2.Shorter Lattice-Based Group Signatures via “Almost Free” Encryption and Other Optimizations‹ 3.数据库后门是什么?我们要如何预防它的危害 4.[Python]运算符: / 和 % 和 //计算差异是什么? 5.什么是Node.js,它有什么作用,可以干啥呢?