NMR Spektrum (1H/13C) mit Python

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Basilius Sapientia
User
Beiträge: 46
Registriert: Freitag 5. September 2014, 22:34

Ich wollte gerne mit Python ein H-NMR Spektrum plotten. Das hat auch prima funktioniert! Ich hatte eine Textdatei mit Zahlen, habe die Säulen definiert, hat alles prima geklappt. Plotten ging auch. Nur sieht mein Plot nicht so aus, wie ich es gerne hätte. Hier die Probleme:

- ich möchte keine Zahlen auf der Y-Akse, auch wenn ich sie zum Plotten benutze (die Professionellen haben auch keine Y-Akse)
- Ich hätte gerne, dass die einzelnen Peaks den X-Wert über sich stehen haben
- ich würde gerne plt.xlim zwei mal im gleichen Plot benutzen. Einmal um die zwei äußeren Ränder wegzuschneiden, ein zweites Mal, um den Zwischenraum zwischen den zwei Graphen zu entfernen; natürlich sollte die X-Akse aufzeigen, dass die zwei Plots plötzlich nebeneinander sind.
- das gesamte einmal Vertikal spiegeln, denn bei richtigen NMR's wird der X-Wert kleiner, wenn man nach Rechts geht.
- zum Schluß hätte ich gerne, dass automatisch ein Integral berechnet wird.

Ich weiß, das ist viel, aber ich habe keine Ahnung wie ich das anstellen soll. Ich habe gelesen, dass es ein Tool gibt, Namens NMRGLUE. https://code.google.com/p/nmrglue/ ... doch leider finde ich nicht, dass ich besonders viel darüber herausfinden kann. Außer, dass es angeblich(?) für NMR da ist, und auch integrieren kann.

Hier das, was ich versucht habe:

Code: Alles auswählen

from __future__ import division
import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt

#1HNMR-plot
data = np.genfromtxt('directory/file.csv', delimiter=',', skip_header=1)

a=data[:,0]
b=data[:,1]
c=data[:,2]
d=data[:,3]

plt.plot(b,c,'b')
plt.xlabel('ppm')
plt.title('HNMR')
plt.xlim(50, 180)
plt.ylim(0,3500000)
plt.grid(True)
plt.show()
Viele liebe Grüße!
Antworten