Seite 1 von 1

Plot von Datenreihen mit matplotlib

Verfasst: Dienstag 4. November 2014, 14:23
von alex1990ge
Liebe Python Freunde,

ich habe folgendes Problem: Ich habe eine .txt Datei mit 2 Spalten. In jeder Spalte befinden sich einige hundert Zahlen.
Mit matplotlib möchte ich diese Datenreihen nun plotten, und zwar die erste Spalte als x- und die zweite Spalte als y-Achse.

Leider werden mir nur Leere Plots angezeigt. Ich denke, dass ich die Spalten vielleicht erst als Listen einlesen muss. Ist das korrekt? Und wenn ja, wie kann ich das machen?

Hier der für die Aufgabe interessante Ausschnitt aus meinem Quelltext:

Code: Alles auswählen

import numpy as np
import matplotlib.pyplot as plt

....

infile = open("lightcurve.txt","r")

for line in infile:
         pair = line.split()
         x = float(pair[0])
         y = float(pair[1])
         plt.plot(x,y)
         plt.show()
Die Datei "lightcurve.txt" wird in dem durch Punkte angezeigtem Bereich zuvor korrekt erstellt.

Für Hinweise und Tipps wäre ich euch sehr dankbar.
Grüße
Alex

Re: Plot von Datenreihen mit matplotlib

Verfasst: Dienstag 4. November 2014, 14:31
von Sirius3
@alex1990ge: Du versuchst hier genau einen Punkt zu plotten, was bei einem Line-Plot ziemlich wenig ist.
Warum verwendest Du nicht numpy.loadtxt?

Re: Plot von Datenreihen mit matplotlib

Verfasst: Dienstag 4. November 2014, 16:46
von MagBen
so geht's

Code: Alles auswählen

import numpy as np
import matplotlib.pyplot as plt

x,y = np.loadtxt("lightcurve.txt").T
plt.plot(x,y)
plt.show()
numpy.loadtxt gibt bei einer zweispaltigen Datei ein n x 2 Array zurück. Mit ".T" transponiere ich das zu einem 2 x n Array, sodass ich dieses Array durch Zuweisung an x und y in zwei Arrays spalten kann.

Re: Plot von Datenreihen mit matplotlib

Verfasst: Mittwoch 12. November 2014, 14:27
von alex1990ge
Vielen Dank euch beiden,

habs hinbekommen. Ist ja auch eigentlich ziemlich leicht. Aber wenn man nicht wirklich weiß, wonach man Suchen muss, sucht man sich im Internet nen Ast ab ;)

Grüße
Alex