python - 曲线拟合拉曼光谱峰和热映射峰面积
问题描述
我目前正在尝试使用双高斯拟合函数将程序从曲线拟合两个峰值缩小到一个峰值。我成功地绘制了两个峰值区域的热图,但是当我为一个峰值区域编码时,我在代码的绘图部分出现错误,如下所示: 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()
斯科特
解决方案
推荐阅读
- python - Sum DF 列存储在嵌套字典中
- javascript - Webpack 将变量传递给启动/构建脚本
- arrays - 需要一个用于存储键数组的数据库,该数据库具有特定于数组的操作,例如“更新联合”和子数组选择
- python - 从 Python/Pytorch 中的一组 LongTensor 中删除 LongTensor
- mysql - Mysql 唯一异常。这样的事情可能吗?
- jquery - Summernote 工具栏,移除滚动并显示下拉
- javascript - 有没有办法在Javascript中通过索引更改子字符串
- r - 如何在 ggplot2 中添加自定义图例?
- javascript - onClick() 函数在 ReactJS 中是如何工作的 Container Component 和 Presentational Component 中发生了什么
- ios - 使用远程 JSON 数组填充 UIPIckerView