json - data - Highcharts agrega series dinĂ¡micamente
set series highcharts (1)
Quiero agregar algunas series (obtengo los datos de la serie de un servicio web como una matriz 3dim (y lo devuelvo como json) - No sé la cantidad de series que obtendré, así que tengo que cargar los datos de la serie de forma dinámica).
En javascript estoy construyendo un objeto: (como este ejemplo de Highstock: http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/stock/demo/ comparar / )
seriesOptions[i] = {
name: namearray[i],
data: dataarray
};
e.g. result: [Object { name="Series", data=[[1041375600000, 29,9]]}]
Intentaba agregar la serie así:
$.each(seriesOptions, function (itemNo, item) {
chart.addSeries({
name: item.name,
data: item.data
}, false);
});
chart.redraw();
Pero el gráfico dibuja la serie un poco raro y no se convierte a la marca de tiempo hasta la fecha.
¿Hay algún problema con los datos de mi gráfico del servicio web?
Aquí está mi código: http://jsfiddle.net/DGdaf/2/
Gracias por cualquier ayuda hasta ahora.
EDITAR
Parece que el cuadro ignora todos los valores predeterminados de línea de tiempo / valor de zoom. No tengo idea de por qué no muestra estos componentes.
El problema podría ser que estoy dibujando el gráfico después de la inicialización.
chart = new Highcharts.Chart(options);
Pero tengo que hacerlo debido a la carga dinámica de la serie.
EDIT2
No estoy seguro de si estoy cargando demasiados datos o algo. No puedo crear mi serie dinámicamente.
for(i=0; i<seriesOptions.length; i++){
chart.addSeries({
name: seriesOptions[i].name,
data: seriesOptions[i].data
}, true);
};
Establecer para su eje y:
yAxis: {
type: ''datetime''
}
Ver violín
EDITAR: línea de tiempo / zoom http://jsfiddle.net/DGdaf/5/
Editar: use la devolución de llamada para agregar series, cuando el gráfico esté listo. Sin embargo, ¿por qué no agrega estas series cuando se crea el gráfico?
chart = new Highcharts.Chart(options, function(ch) {
$.each(seriesOptions, function (itemNo, item) {
ch.addSeries({
name: item.name,
data: item.data
}, false);
});
chart.redraw();
});