Graph plotten und Achse anpassen
Verfasst: Montag 6. Juli 2015, 13:39
Hallo,
ich habe schon wieder ein neues, ähnliches Problem wie im letzten Thread. Ich will einen Graphen plotten, habe aber ein Problem mit der x-Achse. Hier erst mal der Code:
Die Ausgangsdateien sind txt-Files mit extrem vielen Zeilen (für jede Zehntelsekunde eine Zeile, ein File umfasst einen ganzen Tag, also 864000 Zeilen. Hier ein Ausschnitt:
Also ich möchte mein Programm so anpassen, dass auf der x-Achse entweder das Datum steht (als String) oder dass auf der x-Achse gar nichts steht, das wäre die Notlösung, die auch in Ordnung wäre. Aber es sollten keine Zeilennummern dastehen. Vielleicht hat ja jemand von euch eine Idee?
ich habe schon wieder ein neues, ähnliches Problem wie im letzten Thread. Ich will einen Graphen plotten, habe aber ein Problem mit der x-Achse. Hier erst mal der Code:
Code: Alles auswählen
from pylab import *
from matplotlib import pyplot
xList = []
y1List = []
Dateiname = raw_input("Bitte das Verzeichnis eingeben: ")
Datei = open(Dateiname)
Counter = 0
Array = []
for line in Datei:
Counter = Counter + 1
if Counter < 5:
line = str(line)
else:
parts = line.split(",")
y1List.append(float(parts[2]))
z1 = plot(y1List)
pyplot.ylabel("Strahlungsintensitaet")
pyplot.xlabel("Zeit")
pyplot.xticks(rotation ='vertical')
show(z1)
Mein obiger Code ignoriert nun die ersten vier Zeilen (Spaltentitel) und trennt die nachfolgenden Zeilen anhand der Kommas. parts[2] bezieht sich auf die dritte Spalte. Die Diagramme, die dargestellt werden, zeigen auf der x-Achse nun die Zeilennummer an. Im Optimalfall sollte aber das Datum angezeigt werden. Wenn ich xList.append(float(parts[0])) hinzufüge und die y-Werte von x abhängig darstellen will, kommt ein Error, weil sich x nicht in eine float umwandeln lässt. Wenn ich xList.append(str(parts[0])) schreibe, kommt derselbe Fehler."TOA5","CR1000","CR1000","E5930","CR1000.Std.25","CPU:RadMes_Melpitz.CR1","19011","Radiation"
"TIMESTAMP","RECORD","Dir_Wm2","PP1_Wm2","PP2_Wm2","TP1_Wm2","TP2_Wm2","PGE_Wm2"
"TS","RN","W/m2","W/m2","W/m2","W/m2","W/m2","W/m2"
"","","Smp","Smp","Smp","Smp","Smp","Smp"
"2015-05-06 11:33:20.3",355693953,643.4,370.6,902,362.6,884,341.5
"2015-05-06 11:33:20.4",355693954,644.7,370.6,903,362.2,884,341.6
"2015-05-06 11:33:20.5",355693955,646.1,370.6,904,362.6,885,341.7
"2015-05-06 11:33:20.6",355693956,646.5,370.6,904,362.2,886,341.2
"2015-05-06 11:33:20.7",355693957,647.4,370.6,905,362.2,887,341.5
"2015-05-06 11:33:20.8",355693958,647.9,370.6,906,362.2,888,341.5
"2015-05-06 11:33:20.9",355693959,648.8,370.6,907,362.2,888,341.8
"2015-05-06 11:33:21",355693960,651,370.6,908,362.2,889,341.3
"2015-05-06 11:33:21.1",355693961,651.9,370.6,909,362.2,890,341.7
Also ich möchte mein Programm so anpassen, dass auf der x-Achse entweder das Datum steht (als String) oder dass auf der x-Achse gar nichts steht, das wäre die Notlösung, die auch in Ordnung wäre. Aber es sollten keine Zeilennummern dastehen. Vielleicht hat ja jemand von euch eine Idee?