web-dev-qa-db-fra.com

Comment convertir Epoch en temps lisible par l'homme correctement dans gnuplot

J'ai l'extrait suivant pour avoir une sortie graphique via gnuplot.

set datafile separator ","

set title "Memory"
set xlabel "Values"
set ylabel "Date"
set ydata time
set timefmt "%H"
set format y "%d/%m/%Y"
set key left top
set grid

plot 'memory-memory-buffered_combined' using 0:2 titl "1" with lines,\
     'memory-memory-cached_combined' using 0:2 title "2" with lines
cat 
pause -1

Cependant, quand j'ai le résultat, ça commence à partir de 1970.

Les 5 premières lignes du csv que je lis;

Epoch,value
1478193413.596,72910
1478193473.412,134432
1478193413.158,65449
1478193411.929,60157

Nous sommes donc en novembre 2016.

Quelle partie de mon script devrait être différente?

2
Elesmoth

Votre problème principal est que vos données temporelles se trouvent dans la première colonne du fichier. Toutefois, vous souhaitez les utiliser comme données y plutôt que x-data. Donc, vous devez tracer using 2:1

Le deuxième problème est que votre spécificateur timefmt doit être %s (heure de la période: il s'agit du format de vos données en entrée ) plutôt que %H.

Alors

set datafile separator ","

set title "Memory"
set xlabel "Values"
set ylabel "Date"
set ydata time
set timefmt "%s"
set format y "%d/%m/%Y"
set key left top
set grid

plot 'data.csv' using 2:1 title "1" with lines

résultant en GNUPLOT chart of user's data

1
steeldriver