Seite 1 von 1

Brauche Hilfe bei einem Plot

Verfasst: Montag 22. September 2014, 23:30
von Basilius Sapientia
Erstes mal, dass ich Python verwende. Ich habe drei Datenreihen. Ich muss zwei Kurven zeichnen (im gleichen Graph). Einmal X_1, T/K und einmal X_2, T/K.

Hier die Datenreihen:

Code: Alles auswählen

T/K			X_1			X_2
309.820			0.473			0.529
309.422			0.400			0.601
309.031			0.371			0.625
308.006			0.326			0.657
306.686			0.293			0.690
304.553			0.255			0.724
301.803			0.218			0.758
299.097			0.193			0.783
296.000			0.168			0.804
294.534			0.157			0.814
Was ist bitte an diesem Code dann falsch?

Code: Alles auswählen

import numpy as np
import matplotlib.pyplot as plt

with open("Data.txt") as f:
data = f.read()
data = data.split('\n')

x = [row.split(' ')[0] for row in data]
y = [row.split(' ')[1] for row in data]

fig = plt.figure()

ax1 = fig.add_subplot(111)

ax1.set_title("Plot title...")    
ax1.set_xlabel('X values')
ax1.set_ylabel('T [K]')

ax1.plot(x,y, c='r', label='the data')

leg = ax1.legend()

plt.show()
Ich hätte gerne, dass einfach nur, dass alles geplottet wird. Ich bin ein blutiger Anfänger und dachte mir, jetzt habe ich über Python gelesen und Introduktionen durchgesehen - jetzt muss ich es endlich für meine "Chemiekarriere" andwenden. Doch gleich bei meinem ersten Code kam kein Resultat. Also bitte helft mir - das wäre schön :D ... wie gesagt, bin ein blutiger Anfänger :oops:

Viele liebe Grüße und ein großes Dankeschön für Hilfe!

Re: Brauche Hilfe bei einem Plot

Verfasst: Montag 22. September 2014, 23:40
von BlackJack
@Basilius Sapientia: Was an dem Code falsch ist sagt die Fehlermeldung: Die Einrückung stimmt nicht. Woher soll der Compiler wissen welche Zeilen zum ``with``-Block gehören und welche nicht mehr?

Wobei sich zum Einlesen der Daten eher eine der Numpy-Funktionen eignet um Textdateien in Numpy-Arrays zu lesen.

Edit:

Code: Alles auswählen

#!/usr/bin/env python
# coding: utf8
import numpy as np
from matplotlib import pyplot as plt


def main():
    data = np.genfromtxt('test.dat', names=True)

    figure = plt.figure()
    axis = figure.add_subplot(111)
    axis.set_title('Plot title...')
    axis.set_xlabel('X values')
    axis.set_ylabel('$T$ (in K)')
    axis.plot(data['TK'], data['X_1'], color='red', label='the data')
    axis.legend()

    plt.show()


if __name__ == '__main__':
    main()

Re: Brauche Hilfe bei einem Plot

Verfasst: Dienstag 23. September 2014, 12:27
von Basilius Sapientia
BlackJack hat geschrieben:@Basilius Sapientia: Was an dem Code falsch ist sagt die Fehlermeldung: Die Einrückung stimmt nicht. Woher soll der Compiler wissen welche Zeilen zum ``with``-Block gehören und welche nicht mehr?

Wobei sich zum Einlesen der Daten eher eine der Numpy-Funktionen eignet um Textdateien in Numpy-Arrays zu lesen.

Edit:

Code: Alles auswählen

#!/usr/bin/env python
# coding: utf8
import numpy as np
from matplotlib import pyplot as plt


def main():
    data = np.genfromtxt('test.dat', names=True)

    figure = plt.figure()
    axis = figure.add_subplot(111)
    axis.set_title('Plot title...')
    axis.set_xlabel('X values')
    axis.set_ylabel('$T$ (in K)')
    axis.plot(data['TK'], data['X_1'], color='red', label='the data')
    axis.legend()

    plt.show()


if __name__ == '__main__':
    main()

Vielen Dank: doch dann bekomme ich diese Probleme:
make (im Verzeichnis: /home/conrad/Dokumente/Q5/Makro/Aflevering_4/Python_Code)
Kompilierung fehlgeschlagen.
make: *** Keine Targets angegeben und keine »make«-Steuerdatei gefunden. Schluss.
Was tun? Vielen Dank schon mal im Voraus!!!

Re: Brauche Hilfe bei einem Plot

Verfasst: Dienstag 23. September 2014, 12:29
von Hyperion
Wieso hast Du den ein Makefile für Python-Code?

Starte das Modul doch einfach mal so :-)

Re: Brauche Hilfe bei einem Plot

Verfasst: Dienstag 23. September 2014, 14:58
von Basilius Sapientia
Hyperion hat geschrieben:Wieso hast Du den ein Makefile für Python-Code?

Starte das Modul doch einfach mal so :-)
Ich verstehe nicht was du meinst :( - ich bin ein vollkommener Anfänger. Ich habe nur dieses Tutorial gelesen: http://anh.cs.luc.edu/python/hands-on/3 ... torial.pdf (und ein paar andere Tutorials). Danach habe ich auf meinem Linux Mint 17 Python und Geany installiert.

Code: Alles auswählen

sudo -s
apt-get install python
apt-get install geany
Danach habe ich diesen Code in Geany kopiert, alles gespeichter und dann auf kompilieren gedrückt:

Code: Alles auswählen

 #!/usr/bin/env python
    # coding: utf8
    import numpy as np
    from matplotlib import pyplot as plt
     
     
    def main():
        data = np.genfromtxt('test.dat', names=True)
     
        figure = plt.figure()
        axis = figure.add_subplot(111)
        axis.set_title('Plot title...')
        axis.set_xlabel('X values')
        axis.set_ylabel('$T$ (in K)')
        axis.plot(data['TK'], data['X_1'], color='red', label='the data')
        axis.legend()
     
        plt.show()
     
     
    if __name__ == '__main__':
        main()
Bitt erkläre mir, was ich da anders machen sollte? Ich tue mein bestes, doch dies ist mein aller aller erstes mal mit Programmierung (und mein aller erster eigener Python Code). Das einzige was ich will ist, dass ich diese Punkte (in einem Plot) graphisch dastelle.

Code: Alles auswählen

   
T/K                     X_1                     X_2
    309.820                 0.473                   0.529
    309.422                 0.400                   0.601
    309.031                 0.371                   0.625
    308.006                 0.326                   0.657
    306.686                 0.293                   0.690
    304.553                 0.255                   0.724
    301.803                 0.218                   0.758
    299.097                 0.193                   0.783
    296.000                 0.168                   0.804
    294.534                 0.157                   0.814
Dann sollte der Graph ein xlabel, ylabel und eine Überschrift haben. Die Punkte sollten mit y=ax^2+bx+C "gefittet" (also regression - hierbei wäre es schön wenn die Linie danach eingezeichnet werden könnte; desweiteren wäre es schön koefficienten zu erhalten (mit einem Unsicherheitsfaktor)) werden. Ich weiß das ist viel, was ich da verlange. Doch ich habe ja auch schon selbst versucht - und es gelingt mir nicht etwas ordentliches rauszubekommen. Ich brauche einfach viel Anfangshilfe - dann werde ich später auch besser werden. Leider kann ich keinen um Hilfe bitten (weil keiner Programmierer ist in meiner Umgebung) - deshalb komme ich zu euch.

Also wie würdet ihr mein Problem lösen in Python?

Re: Brauche Hilfe bei einem Plot

Verfasst: Dienstag 23. September 2014, 15:14
von Hyperion
Basilius Sapientia hat geschrieben:
Hyperion hat geschrieben: Starte das Modul doch einfach mal so :-)
Ich verstehe nicht was du meinst :( - ich bin ein vollkommener Anfänger.
Du sollst das einfach in einer Shell aufrufen :-)

Code: Alles auswählen

python datei.py
Wird im offiziellen Tutorial auch beschrieben.