python - peak_widths wrt 到 x 轴
问题描述
我正在使用 scipy.signal 来计算不同峰的宽度。我有 100 个不同时间点的值。我正在使用以下代码来计算峰值,然后是宽度。问题是在计算宽度时没有考虑 x 轴上的时间。
peaks_control, _ = find_peaks(x_control, height=2100)
time_control = time[:100]
width_control = peak_widths(x_control, peaks_control, rel_height=0.9)
width_control 的输出是
array([12.84785714, 13.21299534, 13.4502381 , 12.71311143]),
array([2042.5, 2048.8, 2057.4, 2065. ]),
array([ 5.795 ,28.29469697, 51.245 , 74.17150396]),
array([18.64285714, 41.50769231, 64.6952381 , 86.88461538 ]))
我正在使用以下方法在 x 轴上使用时间并显示信号,这是正确的
plt.plot(time_control, x_control)
plt.plot(time_control[peaks_control], x_control[peaks_control], "x")
#plt.plot(np.zeros_like(x_control), "--", color="gray")
#plt.xlim(time_control.tolist())
plt.title('Control')
plt.xlabel('Time (s)')
plt.ylabel('RFU')
plt.show()
我正在使用以下代码来显示宽度,但无法将实际时间放在 x 轴上。
plt.plot(x_control)
plt.plot(peaks_control, x_control[peaks_control], "x")
plt.hlines(*width_control[1:], color="C3")
plt.title('Control')
plt.xlabel('Time (s)')
plt.ylabel('RFU')
plt.show()
解决方案
推荐阅读
- python - 关于 for 循环 for 列表有重复值
- ios - 如何使用选择器视图导航到另一个页面
- colors - 如何随机改变 NetLogo 补丁的颜色
- java - 您可以在增强的 for 循环中使用数组初始化吗?
- dart - Fluter LocalNotification 插件,每 2 小时显示一次通知
- typescript - Typescript 在数组中的键处捕获类型,就像在类对象结构中一样
- oracle - 在 plsql oracle 11 中读取文件并生成查询
- php - 来自 Messenger 处理程序的自定义异常
- c# - 如何修改对象取决于 linq 中的连接条件
- android - ImageView 上方的 TextView:缩放后的 SVG 顶部和 TextView 底部之间的空间被缩放