2016-06-10 7 views
0

Ich verwende GNUPLOT 4.6 unter Linux, mit diesem Code:gnuplot: falscher Spaltenkopf bekommen?

set datafile separator "," 
set style data linespoint 
set xdata time;set timefmt "%Y/%m/%d %H:%M";set autoscale 
plot 'PHY_Long_CHA_CMPK.csv' every ::7 using 2:3 title columnheader(3),\ 
    'PHY_Long_CHA_CMPK.csv' every ::7 using 2:4 title columnheader(4),\ 
    'PHY_Long_CHA_CMPK.csv' every ::7 using 2:5 title columnheader(5),\ 
pause -1 

Und ich bin nicht die richtige Column bekommen, (Erste, Zweite, Dritte), dateiname.csv nur die ganze Zeit. Kann mir bitte jemand helfen? Ich sollte die Daten der Datei filename.csv nicht ändern. Also ich bin mit GNUPLOT Funktionen versuchen ...

Beispiel dateiname.csv:

filename.csv 
Serial number 
From : 2015/12/09 13:15 
To : 2016/06/09 23:30 
sampling rate : 15 

No.,"time","First","Second","Third" 
1,"2015/12/09 13:30",0,0,0 
2,"2015/12/09 13:45",0,0,0 
3,"2015/12/09 14:00",0,0,0 
4,"2015/12/09 14:15",0,0,0 

Antwort

2

Da nun alle die Spaltenüberschrift ist „dateiname.csv“ ;-) Sie haben einen Kommentar-out die Kommentarzeilen ...

#filename.csv 
#Serial number 
#From : 2015/12/09 13:15 
#To : 2016/06/09 23:30 
#sampling rate : 15 
# 
No.,"time","First","Second","Third" 
1,"2015/12/09 13:30",0,0,0 
2,"2015/12/09 13:45",0,0,0 
3,"2015/12/09 14:00",0,0,0 
4,"2015/12/09 14:15",0,0,0 

und sollte nicht verwendet werden ', \' in der letzten Plotten Linie.

+1

+1 Sie mich schlagen, während ich meine Antwort schrieb: Wenn Sie den Header überspringen möchten, können Sie Kommentar Symbole # oder Rohr den Eingang Entfernen der ersten Zeilen mit awk verwenden. Ich werde es verlassen, weil es im OP ein weiteres Missverständnis darüber gibt, wie "jeder" funktioniert und weil ich eine "awk" Alternative vorschlage, die auch funktioniert, wenn das OP die Datei (aus welchem ​​Grund auch immer) nicht bearbeiten kann. – Miguel

+0

@Miguel du hast Recht: Ich hatte nicht darüber nachgedacht, warum das OP 'Every' verwendet :) –

2

Ihre Spaltenüberschrift ist eigentlich filename.csv, denn das ist die erste Zeile in Ihrer Datei. Die every ::7 tut nicht, was Sie erwarten, das heißt, überspringen Sie die ersten 7 Zeilen. Was es macht, überspringen die ersten 7 Dateneinträge.

set datafile separator "," 
set style data linespoint 
set xdata time;set timefmt "%Y/%m/%d %H:%M";set autoscale 
plot "< awk '(NR > 6){print $0}' PHY_Long_CHA_CMPK.csv" using 2:3 title columnheader(3),\ 
    "< awk '(NR > 6){print $0}' PHY_Long_CHA_CMPK.csv" using 2:4 title columnheader(4),\ 
    "< awk '(NR > 6){print $0}' PHY_Long_CHA_CMPK.csv" using 2:5 title columnheader(5) 
pause -1 
+0

Ich würde 'awk' NR> 6'' – Bernhard