2012-04-12 41 views
5

Estoy tratando de encontrar la forma de actualizar un gráfico circular de Highcharts, pero por mi vida parece que no funciona bien.Highcharts: Actualizando un gráfico circular con setData()

He revisado la documentación y he podido obtener una barra, una línea y un gráfico spline para actualizar bien, pero al usar esta función para gráficos circulares simplemente no funciona.

Actualmente estoy dando de comer en:

item.setData([["none", 100]], true); 

cuando el punto es igual a la serie de este modo:

$.each(browser_chart.series, function(i, item){ 
    if(item.name == 'Browser share'){ 
     console.log(data.browsers); 
     item.setData([["none", 100]], true); 
    } 
}); 

que como se muestra en las demos es cómo se formatean los datos de un gráfico circular. El problema es que parece que no puede leer la serie correctamente. Trato:

item.setData([\"none\", 100], true); 

y parece que hacer algo, pero no puedo leer los valores X e Y a la derecha (que por supuesto significa que está mal).

¿Puede alguien aquí señalarme en la dirección para que esto funcione?

Gracias,

Respuesta

7

Editado:
Cuando se establece un nuevo dato que hay que establecer como matriz de matrices para todas las partes de la empanada en este caso.
En mi Example tengo seis categorías, así que tengo que establecer datos para todas ellas.

Por lo tanto, en este caso, usted tiene que hacer algo como:

var seriesData = []; 
$.each(browser_chart.series, function(i, item) { 
    if(item.name == 'Browser share'){ 
     seriesData.push(["serie"+i, someNumber]); 
    } 
}); 
chart.series[0].setData(seriesData, true); 
+0

Hmm que no funcionó, pero su ejemplo no me dicen por qué. Cuando actualizo el gráfico circular, de hecho pierdo puntos en la serie porque algunos buscadores no tienen un valor para un rango de fechas que mi usuario ha seleccionado. Parece que cuando actualizo con menos puntos de los que tenía originalmente, parece que no se puede actualizar correctamente y arroja un desagradable error. ¿Sabes de todos modos alrededor de esto? – Sammaye

+0

He podido hacer que esto funcione con diferentes puntos al rehacer el gráfico circular con Highcharts.Chart() nuevo, pero es algo feo, ¿es esta la única manera de hacerlo? – Sammaye

0

He marcado respuesta Ricardos sin embargo, mi pregunta involucrado un poco más que no me explico correctamente.

Estaba actualizando el gráfico circular a través de AJAX de JSON generado por un backend de PHP. Cuando apliqué datos nuevos al gráfico circular, se rompió.

Usando respuesta Ricardos pude descubrir que es porque tengo un número diferente de puntos, así que no puedo acaba de actualizar el gráfico circular que debe rehacerlo de este modo:

browser_chart_config.series[0].data = data.browsers; 
browser_chart = new Highcharts.Chart(browser_chart_config); 

Esto le permitirá actualice un gráfico cuando tenga una cantidad diferente de puntos.

creo que sirve,

EDIT: También descubrí que este es un problema conocido con Highcharts: https://github.com/highslide-software/highcharts.com/issues/542

+0

Funciona solo cuando configura todos los datos de la serie, por lo que en su caso debe destruir la tabla y volver a hacerlo. : / –

Cuestiones relacionadas