Żywe wykresy #8

W ostatnim czasie chciałem dorzucić kilka wykresów do mojego WPF’owego projektu. Przeszukując pierwszy lepszy topic ze ‚stacka’ trafiłem na bibliotekę live chart.

https://lvcharts.net/

Bardzo spodobała mi się strona główna projektu. Czytelna, prosta oraz przejrzysta. Dokumentacja jest bogata w przykłady, więc nie trzeba odkrywać zasad działania biblioteki krok po kroku.

Jak użyć:

  1. Zainstalować nugeta.
  2. Dodać na ‚widoku’ kod kontrolki, xaml:
  3. Skonfigurować po stronie kontextu aka. ViewModel.
    1. Binding do głównego uchwytu wykresu.
    2. Dodanie liniowego wykresu do naszego układu kartezjańskiego. Przypisanie mu odpowiednich wartości. Skonfigurowanie ośi X oraz Y jest opcjonalne. Domyślnie oś Y będzie skalowana według naszych wartości a oś X będzie kolejnymi indeksami z tablicy (0,1 itd.)

Przykładowy widok wykresu liniowego dodanego według powyższego kodu.

Rzeczy na które się nadziałem.
  1. Po przypisaniu labelek do osi X dynamicznie należy powiadomić o tym widok (wykres), dlatego potrzebna będzie implementacja powiadomiacza obiektowego. OnPropertyChange() jest wykorzystaniem wprost z biblioteki Prism jako metoda klasy BindableBase.
  2. Przypisanie formatera dla osi Y spowodowało u mnie mały zawrót głowy, problem jako taki małostkowy i dla mnie niezrozumiały (nie drązyłem) jednakże:

    1. Podejście z punktu (1) nie działa podejście z punktu (2) działa. Jako, że pod spodem wrzucałem wartości decimal, naturalną drogą było że formater też powinien używać takiego podejścia (tak mi się wydawało).
Performance

Jako, że moje wykresy miały często od 500 – do 1000 punktów na wykresie, potrzebowałem rozwiązania ładnego oraz wydajnego. Po dodaniu takiej ilości punktów okazało się, że animacje trochę za bardzo obciążają moją okienkową aplikację i musiałem szybko zadziałać w tym temacie.

Autor biblioteki przewidział jednak wyłączenie animacji prostą opcją:

W kodzie widoku xaml do naszej kontrolki należy dodać atrybut:

Więcej na temat zwiększenia wydajności działania wykresu, można znaleźć w dokumentacji biblioteki:

https://lvcharts.net/App/examples/v1/wpf/Performance%20Tips

 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *