2011-11-25 19 views
6

ho alcuni dati che assomiglia a questo:Tracciare secondi, minuti e ore sul asseY con Highcharts

min = "00:09" med = "03:11" media = "23:39" max = "12:40:26"

Mi piacerebbe poter essere in grado di utilizzare questi valori come punti dati ma non sono sicuro di come trarli in quanto non sono semplici numeri interi. Idealmente mi piacerebbe che le etichette sull'asse Y mostrassero qualcosa come "ore" o se dovessi usare più assi y quindi potrebbe mostrare "secondi" per i valori "min", "minuti" per "media" valori e così via adattandosi alla finestra temporale appropriata.

Non sono sicuro di poter utilizzare gli oggetti datetime poiché ho solo un valore temporale e non una data.

Tutte le idee saranno apprezzate e grazie in anticipo.

risposta

9

Se i tempi che avete sono stringhe statiche, è possibile convertire in un oggetto datetime ...

//convert 'string' times into a timestamp (milliseconds) 
//so long as your string times are consistently formatted 
//e.g. "0:03:00" not "3:00" 
var t = Date.parse("1-1-1 " + yourTime) 

... Ma se li si può trasformare in un valore di millisecondo a tutti, si dovrebbe Stammi bene.

Poi usare il formato di tempo normale per l'asse y, e formattare come ti piace usare il formato di etichetta con la data ...

var chart = new HighChart({ 
    //... 
    yAxis: { 
     type: 'datetime', //y-axis will be in milliseconds 
     dateTimeLabelFormats: { //force all formats to be hour:minute:second 
      second: '%H:%M:%S', 
      minute: '%H:%M:%S', 
      hour: '%H:%M:%S', 
      day: '%H:%M:%S', 
      week: '%H:%M:%S', 
      month: '%H:%M:%S', 
      year: '%H:%M:%S' 
     } 
    } 
}); 
+0

Grazie per la risposta, ora quasi sembra piuttosto. Il problema è che ora sull'asse y ho valori che assomigliano a questo 978307205000 ms. Questo ha senso in quanto è il numero di millisecondi dal 1970 dato l'1-1-1 che sto aggiungendo ai miei valori. I dataTimeLabelFormats non funzionano? – LCL

+0

Ok, l'ho risolto aggiungendo questo codice: var timeToSubtract = Date.parse ("1-1-1 00:00:00"); e invece di premere 't' nell'array ho premuto t-timeToSubtract. Grazie – LCL

+0

Come si adatteranno i suggerimenti per mostrare i valori y nello stesso formato? – panmari

Problemi correlati