Seite 1 von 1

mehrere Daten einlesen und plotten

Verfasst: Samstag 11. März 2017, 00:02
von Baba
Guten Abend liebe Menschen, bevor ich meine Frage stelle zeige ich euch erstmal meinen Code

Code: Alles auswählen

 from matplotlib import pyplot as plt

datei = open("Datei 1", "r")
zeilen = datei.readlines()
zeilen.pop(0)             # 1. Zeile (Überschriften) löschen
anzahl = len(zeilen)

t = []; x = []; z = []    # leere Felder für die Messwerte
for zeile in zeilen:      # zeilen ist eine Liste der einzelnen Zeilen
    werte = zeile.split() # Zeile am Standard-Trennzeichen (Leerzeichen) zerlegen
    t.append(float(werte[0]))   # Werte der drei Spalten in rationale
    x.append(float(werte[1]))   # Zahlen konvertieren und in Listen
    z.append(float(werte[2]))   # speichern
    # Aktuelle Werte ausgeben:
    print("t = {} s, x = {} m, z = {} m".format(t[-1], x[-1], z[-1])) 
datei.close()

datei = open("Datei 2", "r")
a = []; b = []; c = []    # leere Felder für die Messwerte
for zeile in zeilen:      # zeilen ist eine Liste der einzelnen Zeilen
    werte = zeile.split() # Zeile am Standard-Trennzeichen (Leerzeichen) zerlegen
    a.append(float(werte[0]))   # Werte der drei Spalten in rationale
    b.append(float(werte[1]))   # Zahlen konvertieren und in Listen
    c.append(float(werte[2]))   # speichern
    # Aktuelle Werte ausgeben:
    print("a = {} s, b = {} m, c = {} m".format(a[-1], b[-1], c[-1])) 
datei.close()

plt.plot(x, z)
plt.plot( b, c)
plt.grid()
plt.show()
So nun möchte ich diese Dateien plotten. Die erste Datei wird auch einwandfrei wiedergegeben aber nun komme ich zu meinem Problem.
Ich wollte, wie mit der ersten Datei, die Messwerte (Spalte der Dateien) jeweils auf die Variable a,b,c Definieren und dann plotten lassen. Jedoch werden die Variable a,b,c nicht mit den Daten aus der Datei 2 belegt sondern mit den Daten der Datei 1 zusätzlich zu den Variablen t,x,z.
Also nun zusammengefasst, wie kann ich die Spalten der zwei Dateien auslesen und jeweils auf 6 verschiedene Varbiablen definieren. Bei mir kann ich immer nur eine Datei auslesen.
Ich hoffe ich konnte meine Frage euch verständlich machen und das ihr mir helfen könnt.
Ich bedanke mich schon bei jeder kleinen Hilfestellung.

Re: mehrere Daten einlesen und plotten

Verfasst: Samstag 11. März 2017, 11:46
von MagBen
Du solltest Dir mal Numpy anschauen. Mit der Funktion numpy.loadtxt
https://docs.scipy.org/doc/numpy/refere ... adtxt.html
werden die Zeilen 3 bis 16 und 18 bis 27 jeweils zu Einzeilern.

Du hast mit Matplotlib auch mehr Möglichkeiten, wenn Du mit Numpy-Arrays anstatt mit Python Listen arbeitest.

Im folgenden zwei hilfreiche Numpy Tutorials:
http://cs231n.github.io/python-numpy-tutorial/
http://www.labri.fr/perso/nrougier/teac ... l#creation

Re: mehrere Daten einlesen und plotten

Verfasst: Samstag 11. März 2017, 11:52
von kbr
@Baba: Du musst die zweite Datei nicht nur öffnen, sondern auch einlesen.

Re: mehrere Daten einlesen und plotten

Verfasst: Samstag 11. März 2017, 16:26
von Baba
@kbr vielen Dank für deine Antwort. Ja das war sehr dumm von mir. Ich habe das einfach übersehen. :roll: :oops:

@MagBen ebenfalls Vielen Dank für deine Antwort. Ich bin noch ziemlich neu in diesem Gebiet und kennen noch nicht so viel. Ich werde mir die Links nocheinmal genauer anschauen um mir Arbeit zu ersparen.

Alles im allem klappt es jetzt alles wie geplant.

Ein schönes Wochenede euch noch