2011-07-20 14 views
6

Jestem "animatorem" wykresów w czasie, zmieniając dane i przerysowując je.Jak animować diagramy za pomocą jQuery i jQplot (aktualizowanie danych)

Teraz po pewnym czasie zmieniam dane w jakiś sposób i chcę zaktualizować diagram. Działa następujące rozwiązanie:

// update Data 
targetPlot.data = ...; 
// remove old diagram 
$('#<%= "diagram" + diagram.id.to_s %>container').empty(); 
// redraw 
targetPlot = $.jqplot('#diagram', data, diagramOptions); 

Bit to kompletny przerysowanie. Dzięki dużej ilości danych i krótkiej intervall jQPlot zajmuje dużo pamięci, a diagram migocze.

Jak to zrobić poprawnie?

Rozwiązanie pomocą odświeżania-funkcja dla mnie przyciąga tylko stary schemat:

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

Odpowiedz

15

jest to sposób znalazłem po wielu badań. Piszę to, aby pomóc komuś czytającemu to pytanie.

odpowiednim miejscu, aby zaktualizować dane w nieruchomości serii, po aktualizacji danych można przerysować działki:

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

Jeśli oś zmianie, wówczas można przeskalować je za pomocą replot() zamiast redraw() :

targetPlot.replot({resetAxes:true}); 

Jest to znacznie szybsze niż ponowne rysowanie nowego wykresu za każdym razem.

+3

Możesz również aktywować ['animateReplot'] (http://www.jqplot.com/deploy/dist/examples/barLineAnimated.html), aby uzyskać małą animację na replote –

+0

Plus 300, jeśli mógłbym ... powyższy komentarz jest kluczem do ożywienia wykresu. Dzięki. –

Powiązane problemy