【问题标题】:How to plot graph the intensity versus wavelength for the spectrum? [closed]如何绘制光谱的强度与波长关系图? [关闭]
【发布时间】:2017-10-24 12:34:48
【问题描述】:

需要绘制光谱的强度与波长的关系图。另外,我需要从图中确定波长(下图):

使用哪个程序我可以做到这一点?我在 Google 程序中搜索,但它们都使用视频 (例如 theremino 光谱仪)?。我需要处理图像。

【问题讨论】:

    标签: python graph physics spectrum


    【解决方案1】:

    那不是图表,而是图片。无论如何,您可以按照以下方式开始。

    您可以使用scipy 加载图像。然后,在最简单的情况下,进行水平切割,这将为您提供强度与像素位置的关系。

    import scipy.misc as misc
    import matplotlib.pyplot as plt
    
    img = misc.imread('spectrum.png', mode='L')
    mid_line = img[len(img)//2]
    plt.plot(mid_line)
    plt.show()
    

    那里有相当多的背景亮度。进行垂直平均会得到更平滑的光谱 (img_mean = img.mean(axis=0))。

    然后你必须找到一种方法来“校准”像素位置到波长。为此,您需要一个“真相”的外部来源,我不知道您有什么可用的。例如,您可以说绿线处的最大值为 510 nm(像素 405),而亮蓝色处的最大值为 460 nm(像素 302)。然后,根据您的实验设置,您可能会说以像素为单位的距离与波长成线性关系,然后您就可以进行转换了。

    希望这能给你一些指导。

    【讨论】:

    • 编译后我会得到一个空的graph。有什么问题?
    • 忘记切片了,代码更正了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    相关资源
    最近更新 更多