pie - plot javascript chart
Cómo animar diagramas con jQuery y jQplot(actualización de datos) (1)
Estoy "animando" diagramas a lo largo del tiempo cambiando los datos y redibujándolos.
// initialization
var data = ...
var targetPlot = $.jqplot(''#diagram'', data, diagramOptions);
Ahora, después de un tiempo, cambiaré los datos de alguna manera y quiero actualizar el diagrama. La siguiente solución funciona:
// update Data
targetPlot.data = ...;
// remove old diagram
$(''#<%= "diagram" + diagram.id.to_s %>container'').empty();
// redraw
targetPlot = $.jqplot(''#diagram'', data, diagramOptions);
Poco esto es un redibujado completo. Con una gran cantidad de datos y un breve intervalo, jQPlot requiere mucha memoria y el diagrama parpadea.
¿Cómo hacer esto correcto?
La solución que usa la función redraw para mí solo dibuja el diagrama anterior:
// update Data
targetPlot.data = ...;
targetPlot.redraw();
Esta es la forma en que encontré después de mucha investigación. Estoy escribiendo esto para ayudar a alguien a leer esta pregunta.
El lugar correcto para actualizar los datos se encuentra en la propiedad de la serie, después de actualizar los datos puede volver a dibujar el trazado:
targetPlot.series[0].data = myData;
targetPlot.redraw();
Si su eje cambió, puede reescalarlos usando el replot()
lugar de redraw()
:
targetPlot.replot({resetAxes:true});
Esto es mucho más rápido que volver a dibujar una nueva trama cada vez.