2013-07-18 13 views
15

Utworzono serię wykresów za pomocą biblioteki flot, które są wyświetlane na pojedynczej stronie. Czy istnieje sposób aktualizowania wartości osi min i maksimum osi X (options.xaxis.min, options.axis.max) BEZ ponownego rysowania wykresów ($ .plot ("element zastępczy", dane, opcje))?Zmiana osi min/maks na istniejącym wykresie za pomocą Flot JQuery Library

Znalazłem to rozwiązanie: http://osdir.com/ml/flot-graphs/2012-02/msg00064.html Co sugeruje, że zrobiłaby to następująca linia, ale to nie działa dla mnie - wykresy widoczne min i max nie są modyfikowane w oparciu o to połączenie.

monitorGraph.getOptions().xaxes[0].max = xaxis.max; 

Wszelkie wskazówki na temat aktualizacji wykresów wartości xaxis max i min są bardzo mile widziane!

EDIT: Rozwiązanie Poniżej

Poniższy kod odbędzie istniejący wykres, zaktualizować zakres, który jest widoczny, a przerysować go w bardzo lekki i wydajny sposób.

  plot.getOptions().xaxes[0].min = time.start; 
      plot.getOptions().xaxes[0].max = time.end; 
      plot.setupGrid(); 
      plot.draw(); 
+0

Aby określić dodatkowych wojsk: Chciałbym działek w celu odzwierciedlenia nowego X min i max, ale nie chciałbym, aby ponownie działka je całkowicie, ponieważ jest to bardzo kosztowne i wydaje się spowalniać ten proces. – jfaghihnassiri

Odpowiedz

12

Po ustawieniu wartości wysokości max yAxis, spróbuj

yourPlot.setupGrid(); 

Nie wiem, czy to będzie tak gładka jak chcesz, ale myślę, że to załatwia sprawę.

+0

To bardzo pomogło! Znaczna poprawa w zakresie wywoływania .plot za każdym razem. Dziękuję Ci! – jfaghihnassiri

+0

Ups, na drugi rzut oka wydaje się myPlot.setupGrid(); również nie aktualizuje graficznie w żaden sposób. Jakieś pomysły? – jfaghihnassiri

+0

Hmmm Poszedłem na stronę flot i po prostu dicked wokół w konsoli. Może spróbuj setupGride, a następnie spróbuj draw()? –

10

Można również dynamicznie modyfikować min/parametry max w opcji osi:

plot.getAxes().xaxis.options.min = 0; 
plot.getAxes().xaxis.options.max = 999; 

plot.setupGrid(); 
plot.draw(); 
Powiązane problemy