2012-06-06 3 views
10

Lets' prendere questo come il file di dati:Come utilizzare GnuPlot per tracciare un grafico di serie storiche da un file CSV data e ora memorizzati in colonne separate?

2012-06-01, 01:00, 1 
2012-06-01, 02:00, 2 
2012-06-01, 03:00, 4 
2012-06-01, 04:00, 3 
... 
2012-06-02, 01:00, 5 
2012-06-02, 02:00, 2 
2012-06-02, 03:00, 1 
2012-06-02, 04:00, 1 
... 

so come impostare timefmt e xdata tracciare serie momento in cui la data e l'ora sono rappresentate con un singolo campo, ma come tracciare questo con GNUPlot quando il tempo e la data è memorizzata in colonne separate?

risposta

14
Non

troppo diverso di quanto sarebbe se fossero spazi ...

set timefmt '%Y-%m-%d, %H:%M' 
set xdata time 
set datafile sep ',' 
plot 'test.dat' u 1:3 w lines 

Non so se hai utilizzato timefmt con spazi in essa prima che uno (per lo spazio normale file di dati separati), ma in In tal caso, si specifica la colonna in cui iniziano i dati temporali - gnuplot analizza automaticamente il numero di colonne necessarie per compilare il formato a tempo pieno. Ovviamente, è necessario utilizzare una specifica completa (in questo caso significa indicare che i dati sono nella terza colonna - nota, non il secondo come ci si potrebbe aspettare).

(testato su gnuplot 4.4 - OS X)

+0

questo momento io uso i file di dati separati da virgole, iso- 8601 formato data-ora (come 2012-06-06T14: 54Z) e senza spazi. Ma avrò bisogno di supportare valori di data-ora separati da spazi e separati da virgole in file separati da virgole. Grazie per la soluzione, ci proverò. – Ivan

+0

@Ivan - Nessun problema. Spero che funzioni per te. – mgilson

+0

Raccomando anche 'set formato x"% Y-% m-% d \\ n% H:% M "' – Notinlist

5

Esecuzione di Arch Linux Gnuplot 4.6 patchlevel 3

non ho potuto ottenere frammento di codice di mgilson al lavoro. avevo bisogno di impostare la xrange prima che avrebbe smesso di lamentarsi

all points y value undefined! 

ho dovuto

set xrange["2012-06-01, 01:00":"2012-06-02, 05:00"] 

e finalmente una bella trama

+1

Si prega di postare che come commento alla risposta di mgilson, non è una risposta a sé stante. E per me il suo frammento funziona bene con 4.6.3 (Debian). – Christoph

+4

Non posso. Non ho abbastanza punti reputazione. –

Problemi correlati