mehrere Daten einlesen und plotten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Baba
User
Beiträge: 2
Registriert: Freitag 10. März 2017, 23:48

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.
Zuletzt geändert von Anonymous am Samstag 11. März 2017, 00:40, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

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
a fool with a tool is still a fool, www.magben.de, YouTube
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@Baba: Du musst die zweite Datei nicht nur öffnen, sondern auch einlesen.
Baba
User
Beiträge: 2
Registriert: Freitag 10. März 2017, 23:48

@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
Antworten