Forum: PC-Programmierung GNUplot Datumformat


von Martin N. (mneumann3)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe hier im Forum schon die ein oder andere nützlich Info zu 
GNUplot gefunden. Leider habe ich für mein aktuelles Problem keine 
Lösung gefunden, die auch bei mir funktioniert hat.

Problem:

Datei mit Messwerten in Spalte 1 Datum und in Spalte 2 Uhrzeit

Meine Idee war das Zeitformat so zu wählen, dass die Spalten 1 & 2 als 
eine gelesen werden. Scheinbar funktioniert die Idee nicht. GNUplot 
erkennt nur den Tag (Bild im Anhang). So lautet das "Programm" Hat 
jemand eine Lösung?

reset
cd 'c:\000'
set grid x y
set tmargin 5
set bmargin 8
set lmargin 8
set rmargin 8
set key center top title " "
set title "Auswertung"
set xlabel "Zeit"
set xdata time
set xrange ["27/02/17,00:00:00":"02/03/17,23:59:59"]
set timefmt  "%d/%m/%y,%H:%M:%S"
set ylabel "el. Leistung [kW]"
set y2label "TIT [°C]"
set ytics nomirror
set y2tics
set tics out
set yrange [0.0 : 500.0]
set ytics 60
set y2range [000.0 : 500.0]
set datafile separator ","
plot '01_S01_N.csv' using 1:8 title "el. Leistung" axes x1y1 with points 
pointtype 5 pointsize 0.5, '01_S01_N.csv' using 1:10 title "TIT" axes 
x1y2 with points pointtype 5 pointsize 0.5

von Walter S. (avatar)


Lesenswert?

entweder das Komma aus dem Datumsformat raus oder was anderes als 
Spaltentrenner nehmen

von Martin N. (mneumann3)


Lesenswert?

Das Komma ist fix, da es sich um bereits aufgenommene Werte handelt. Das 
Komma im Datumsformat habe ich genutzt, um die zwei Zeilen durch set 
timefmt zu verbinden.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Bei mir scheint das mehrdeutige Komma nicht arg zu stören. Allerdings
kenne ich auch nicht das exakte Format deiner CSV-Datei. Kannst du mal
einen Ausschnitt davon posten, damit man das Problem nachstellen kann?

von Martin N. (mneumann3)


Lesenswert?

So siehts in der csv aus:

"Date","Time","Alarm 1","Alarm 2","Status 1","Schritt"...
"28/02/17","23:58:10","    0","    0","26240"," 7"...
"28/02/17","23:58:11","    0","    0","26240"," 7"...

Ich habe für jeden Tag 8 csv mit je 3h Datenaufzeichnung. Ich habe auch 
schon den Tipp gefunden, die Daten in eine neue Datei zu schieben und 
dabei beide Spalten zuverbinden. Aber das hat nicht geklappt. Hier mal 
der link:

https://forum.ubuntuusers.de/topic/datenbank-ueber-gnuplot-plotten/

von Yalu X. (yalu) (Moderator)


Lesenswert?

Martin N. schrieb:
> "28/02/17","23:58:10"

Wenn du Datum und Uhrzeit zusammen als eine Einheit ausgewertet haben
möchtest, musst du nicht nur das Komma in der Mitte, sondern auch die
Anführungszeichen links und rechts davon in das Zeitformat übernehmen:

1
set timefmt  "%d/%m/%y\",\"%H:%M:%S"

Beachte dabei aber, dass wegen

1
set datafile separator ","

das Komma zwischen Datum und Uhrzeit für die Spaltennummerierung nach
vie vor als Trennzeichen interpretiert wird und somit die Uhrzeitspalte
trotz ihrer Verbindung mit der Datumspalte immer noch die die Nummer 2
hat. Die darauffolgende Spalte "Alarm 1" hat also die Spaltennummer 3.

von Martin N. (mneumann3)


Lesenswert?

boah das wirkt.

Deine Begründung habe ich verstanden und ich hatte es auch schon ähnlich 
versucht, allerdings systax widrig.

Kann Du mir kurz die Syntax \",\" erklären? Danke!

von Endschinör (Gast)


Lesenswert?

Der Backslash ist das Escape-Zeichen, das dem Rechner sagt er soll das 
danach kommende Zeichen nicht in seiner Funktion auswerten sondern als 
einfaches Zeichen nehmen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.