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

绘制元素光谱图时首个峰FWHM标注显示NaN的问题求助

问题分析与解决建议

核心问题定位

你代码里的标注语句plt.text(x[peaks[i]], intensity[peaks[i]], fwhm[i] % i)存在致命错误:

  • 循环到第一个峰(i=0)时,执行fwhm[0] % 0,数学上除以0无意义,直接返回NaN,这就是第一个峰标注异常的原因。
  • 第二个峰i=1,fwhm[1] % 1的结果就是fwhm[1]本身,所以显示正常。

修正方案

去掉无意义的取模操作,直接格式化显示FWHM值即可,示例如下:

for i in range(len(peaks)):
    # 保留6位小数格式化显示FWHM,可根据需求调整小数位数
    plt.text(x[peaks[i]], intensity[peaks[i]], f"{fwhm[i]:.6f}")

如果需要给标注增加说明文字,比如明确标注是FWHM,可修改为:

for i in range(len(peaks)):
    plt.text(x[peaks[i]], intensity[peaks[i]], f"FWHM: {fwhm[i]:.6f}")

额外优化建议

  • 可调整标注位置避免与曲线重叠,比如给y坐标增加偏移量:plt.text(x[peaks[i]], intensity[peaks[i]] + 500, f"{fwhm[i]:.6f}")(500为偏移量,可根据你的强度数据范围调整)
  • 验证peak_widths的计算逻辑:确认rel_height=0.5确实对应半高位置,可结合properties['peak_heights']的值,检查半高高度的计算是否符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 01:40:02