2011-11-25 48 views
6

tengo algunos datos que se parece a esto:Trazado de segundos, minutos y horas en el eje Y con Highcharts

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

Me gustaría poder utilizar estos valores como puntos de datos pero no estoy seguro de cómo trazarlos ya que no son enteros simples. Idealmente me gustaría que las etiquetas en el eje Y muestren algo así como 'horas' o si tuviera que usar múltiples ejes y, entonces podría mostrar 'segundos' para los valores 'mínimos', 'minutos' para el 'significado' valores, etc., adaptándose a la ventana de tiempo apropiada.

No estoy seguro si puedo usar objetos datetime ya que solo tengo un valor de tiempo y no una fecha.

Cualquier idea será apreciada y gracias de antemano.

Respuesta

9

Si los tiempos que usted tiene son cadenas estáticas, puede convertirlos en un objeto de fecha y hora ...

//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) 

... Pero si usted puede convertirlos en un valor de milisegundos en absoluto, usted debe estar bien.

A continuación, utilice el formato de hora normal para el eje Y, y el formato que desee con el formato de etiqueta de fecha ...

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

Gracias por su respuesta, ahora casi parece bonita. El problema es que ahora en el eje y tengo valores que se parecen a este 978307205000 ms. Esto tiene sentido ya que es el número de milisegundos desde 1970 dado el 1-1-1 que estoy agregando a mis valores. ¿Los formatos dateTimeLabelFormats no funcionan? – LCL

+0

Ok, lo resolví agregando este código: var timeToSubtract = Date.parse ("1-1-1 00:00:00"); y luego, en lugar de presionar 't' en la matriz, presioné t - timeToSubtract. Gracias – LCL

+0

¿Cómo adaptaría la información sobre herramientas para mostrar los valores y en el mismo formato? – panmari

Cuestiones relacionadas