2011-07-20 51 views
6

我通過更改數據並重繪數據來隨時間推移「動畫」圖。如何使用jQuery和jQplot動畫圖(更新數據)

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

這是一個完整的重繪。有了大量的數據和一個簡短的intervall jQPlot需要大量的內存,圖表閃爍。

如何正確使用?

使用重繪功能對我來說,唯一的解決辦法吸引老圖:

// update Data 
targetPlot.data = ...; 
targetPlot.redraw(); 

回答

15

這是我大量的調查後發現的方式。我寫這篇文章是爲了幫助讀者閱讀這個問題。

的正確位置更新的數據是在一系列屬性,更新數據後,就可以重繪的情節:

targetPlot.series[0].data = myData; 
targetPlot.redraw(); 

如果你的軸改變,那麼你可以通過使用replot(),而不是redraw()重新調節:

targetPlot.replot({resetAxes:true}); 

這比每次重新繪製新圖要快得多。

+3

你也可以激活['animateReplot'](http://www.jqplot.com/deploy/dist/examples/barLineAnimated.html)在replot –

+0

Plus 300上獲得一些動畫,如果我可以......上面的評論是重新生成圖表的關鍵。謝謝。 – 2014-06-25 19:39:52