写一段NMR数据处理代码
时间: 2023-07-10 19:12:03 浏览: 41
好的,以下是一段简单的NMR数据处理代码:
```
import numpy as np
import matplotlib.pyplot as plt
# 读取NMR数据
data = np.loadtxt('nmr_data.txt')
# 提取谱图数据
x = data[:, 0] # 化学位移
y = data[:, 1] # 强度
# 绘制原始谱图
plt.plot(x, y)
plt.xlabel('化学位移 (ppm)')
plt.ylabel('强度')
plt.title('原始NMR谱图')
plt.show()
# 对谱图进行峰识别和积分
peaks, _ = find_peaks(y, height=1000) # 找到峰值点
intensities = []
for i in range(len(peaks)-1):
intensity = np.trapz(y[peaks[i]:peaks[i+1]], x[peaks[i]:peaks[i+1]]) # 计算峰面积
intensities.append(intensity)
# 绘制峰表和积分谱图
plt.plot(x, y)
plt.plot(x[peaks], y[peaks], 'x')
for i, intensity in enumerate(intensities):
plt.text(x[peaks[i]], y[peaks[i]], str(round(intensity, 2)))
plt.xlabel('化学位移 (ppm)')
plt.ylabel('强度')
plt.title('NMR峰表和积分谱图')
plt.show()
```
这段代码会读取一个名为`nmr_data.txt`的文本文件,包含了NMR谱图的化学位移和强度数据。它会绘制原始谱图,并使用`find_peaks`函数找到峰值点,然后计算每个峰的面积作为峰的积分强度。最后,它会绘制出峰表和积分谱图。