首页 > 解决方案 > 曲线拟合拉曼光谱峰和热映射峰面积

问题描述

我目前正在尝试使用双高斯拟合函数将程序从曲线拟合两个峰值缩小到一个峰值。我成功地绘制了两个峰值区域的热图,但是当我为一个峰值区域编码时,我在代码的绘图部分出现错误,如下所示: cbmin = min(np.nanmin(area1_results)) TypeError: 'numpy.float64' object is not iterable.

我的绘图代码如下:

    fig, ax = plt.subplots(1,1)

    # section to resolve spectrogram line colours after area calculations so that they match their corresponding pixel colour

    ax.xaxis.set_ticks(x_values)
    ax.yaxis.set_ticks(y_values)
    cbmin = min(np.nanmin(area1_results))
    cbmax = max(np.nanmax(area1_results))
    im = ax.imshow(area1_results, vmin=cbmin, vmax=cbmax)
    fig.colorbar(im)
    # assigning colours
    ax.set_title('PL Peak Areas')
    plt.show()

该错误显然与 numpy nanmin 和 nanmax 有关,但不完全理解。如果有人可以提供帮助,我将不胜感激。为了帮助更好地理解我正在尝试做的事情,我还将展示用于绘制两个峰值区域的热图的代码:

    fig, ax = plt.subplots(ncols=2, figsize=(10, 4))
           
    # section to resolve spectrogram line colours after calculations so that they match their 
    corresponding pixel colour
    ax[0].xaxis.set_ticks(x_values)
    ax[0].yaxis.set_ticks(y_values)
    ax[1].xaxis.set_ticks(x_values)
    ax[1].yaxis.set_ticks(y_values)    
    cbmin = min(np.nanmin(area1_results), np.nanmin(area2_results))
    cbmax = max(np.nanmax(area1_results), np.nanmax(area2_results))
    ax[0].imshow(area1_results, vmin=cbmin, vmax=cbmax)
    im = ax[1].imshow(area2_results, vmin=cbmin, vmax=cbmax)    
    fig.colorbar(im)
    # assigning colours
    ax[0].set_title('Peak2 Areas')
    ax[1].set_title('Peak1 Areas')
    plt.show()

斯科特

标签: pythonnumpy

解决方案


推荐阅读