首先,我想指出我是编程的新手(从上周开始),而我的知识有限。 到目前为止,我设法绘制了2个文件并设置了辅助y轴,标签,网格...。 我搜索了可以整合峰并给出峰面积的代码,但找不到任何有帮助的代码。我成功使用了peakutils在x和Y轴上看到了峰值。
将matplotlib.pyplot导入为plt 将numpy导入为np导入peakutils
x, y = np.loadtxt('second.txt', delimiter=',', unpack=True, skiprows=10)
indexes = peakutils.indexes(y, thres=0.1, min_dist=300)
print(x[indexes], y[indexes])
plt.annotate(str(x[indexes]) + "," + str(y[indexes]), xy=(1.5, 15000))
peaks_x = peakutils.interpolate(x, y, ind=indexes)
plt.grid(True) plt.grid(color='grey', linestyle='-', linewidth=0.25, alpha=0.5)
plt.xlabel('time') plt.ylabel('detector signal')
plt.plot(x,y, label='Detector')
plt.title('run 231 \ntest plot')
plt.legend()
plt.show()
我的情节看起来像这样:
我的问题是,是否有人可以通过代码帮助我整合0.8、2.2、2.5和3.1分钟的峰并查看峰面积。
真正的细峰(在0.01、0.5、1.1和2分钟处)是阀门开关,因此应忽略。
谢谢。