随着时间的推移,我通过更改数据和重新绘制图表来“动画”图表。
// initialization
var data = ...
var targetPlot = $.jqplot('#diagram', data, diagramOptions);现在,在一段时间后,我将以某种方式更改数据,并希望更新图表。以下解决方案有效:
// update Data
targetPlot.data = ...;
// remove old diagram
$('#<%= "diagram" + diagram.id.to_s %>container').empty();
// redraw
targetPlot = $.jqplot('#diagram', data, diagramOptions);这是一个完全的重绘。由于有大量的数据和很短的时间间隔,jQPlot占用了大量的内存,并且图表闪烁不定。
如何正确地做到这一点呢?
对于我来说,使用redraw function的解决方案只绘制了旧的图表:
// update Data
targetPlot.data = ...;
targetPlot.redraw();发布于 2011-07-26 16:54:10
这是我经过大量调查后发现的方法。我写下这篇文章是为了帮助阅读这个问题的人。
更新数据的正确位置在系列属性中,更新数据后可以重新绘制绘图:
targetPlot.series[0].data = myData;
targetPlot.redraw();如果轴发生更改,则可以使用replot()而不是redraw()重新缩放它们
targetPlot.replot({resetAxes:true});这比每次重新绘制新图要快得多。
https://stackoverflow.com/questions/6761088
复制相似问题