使用 Python 笔记本从 Topspin 导出并绘制 2D 等高线图

问题描述 投票:0回答:1

从 Topspin 程序中,我正在尝试导出

中的选定区域
  • 适当的格式

到后来

  • 使用 Python 代码绘制。

首先,我不知道要导出的格式是正确的,然后,代码绘制它之后也能够修改轴(通过使用 plt.set_x(y)lim())。最后提到的一件事将对于设置先前选择的区域的子区域非常有用。

我尝试过以下方法:

右键单击所选区域 > 将显示区域保存到...

如果我选择最后一个选项,则会出现一个大的 .txt 文件,其中包含 XY 网格的 z 轴中的值,但有关 x 和 y 轴的信息会丢失,并且无法选择子区域。

对于选择正确的格式和代码有什么建议吗?

python 2d contour spectrum chemistry
1个回答
-1
投票

如果有人遇到同样的问题并且找不到任何答案,这里有解决方案:

https://github.com/jjhelmus/nmrglue/issues/214

这里是代码:

# read data
dic, data = ng.bruker.read_pdata("datafolder/1/pdata/1")

# read in axis ppm parameters
udic = ng.bruker.guess_udic(dic, data, strip_fake=True)
uc = {i: ng.fileiobase.uc_from_udic(udic, dim=i) for i in (0, 1)}
axis_limits = [*uc[1].ppm_limits(), *uc[0].ppm_limits()]

# contour levels
levels = [data.max() / 20 * 1.4**i for i in range(10)]  # change as needed

# plot
fig, ax = plt.subplots()
ax.contour(
    data.real, 
    levels=levels, 
    extent=axis_limits, 
    cmap=plt.cm.Greys_r, # change as per your preference 
    linewidths=0.5, # change as per your preference
)

ax.set_xlim(11.5, 6)  # change as needed
ax.set_ylim(135, 105)  # change as needed

plt.show()
© www.soinside.com 2019 - 2024. All rights reserved.