2013-08-08 4 views
7

Ich habe durch Fragen, aber immer noch nicht funktioniert.Gnuplot mehrere Zeilen mit Zeit auf der X-Achse

Meine Datensatz ist wie folgt aus:

[date] , [%cpu] , [mem] 
23:00:39 , 21.9 , 2.1 
23:00:44 , 21.8 , 2.1 
23:00:49 , 21.8 , 2.1 
23:00:54 , 21.8 , 2.1 
23:00:59 , 21.7 , 2.1 

Mein Gnuplot Aussagen (gerade begonnen für diese Daten verwendet wird) ist:

set timefmt "%H:%m:%s" 
set xdata time 
set datafile sep ',' 
plot '/tmp/info' using 2 title 'cpu' with lines, '/tmp/info' using 3 title 'memory%' with lines 

Ich erhalte die folgende Fehlermeldung:

Need full using spec for x time data 

Ich habe Autoscale X versucht, aber ich bin ein bisschen verloren, jede Hilfe wäre willkommen.

Antwort

2

Ihr Plotbefehl so aussehen statt:

plot '/tmp/info' using 1:2 title 'cpu' with lines, '/tmp/info' using 1:3 title 'memory%' with lines 
5

Zeitdaten erfordert, dass Sie immer alle Spalten angeben, verwendet werden. (Beachten Sie auch die korrigierte timefmt):

set timefmt "%H:%M:%S" 
set xdata time 
set datafile sep ',' 
set style data lines 
plot '/tmp/info' using 1:2 title 'cpu', '' using 1:3 title 'memory%' 

Der Grund dafür ist, dass der timefmt auch Leerzeichen enthalten kann, so dass die Daten für die Zeitachse verwendet wird, kann aus zwei Spalten kommen. Betrachten Sie die folgende modifizierte Datendatei:

23:00:39 06/08/13 21.9 2.1 
23:00:44 06/08/13 21.8 2.1 
23:00:49 06/08/13 21.8 2.1 
23:00:54 06/08/13 21.8 2.1 
23:00:59 06/08/13 21.7 2.1 

Die Plottbefehle für dieses Format sind:

set timefmt "%H:%M:%S %d/%m/%Y" 
set xdata time 
set format x "%H:%M:%S" 
set style data lines 
plot 'mydata.dat' using 1:3 t 'cpu', '' using 1:4 t 'memory%' 

Um Verwirrung zu vermeiden, ist es immer erforderlich, dass für Zeitdaten aller Spalten von der Plotten Stil verwendet (hier with lines) sind explizit mit der using Anweisung angegeben.