Wykres interaktywny

Czasem prosty wykres to za mało aby analizować dane. Kiedy danych jest bardzo dużo musimy udostępnić użytkownikowi możliwość zbliżenia na interesujący go odcinek czasu.  Zobaczmy jak to wygląda. Mamy odcinek czasu z notowania waluty euro-usd, kiedy chce wyświetlić wykres tego notowania wszystko jest mało czytelne:

wykres_dostosowującysie

 

Tutaj jest i tak nieźle ponieważ wykres sam określa minimalne i maksymalne wartości, wasz wykres prawdopodobnie będzie miał minimum w 0 co jeszcze bardziej uniemożliwi jego skuteczną interpretacje. Jak ustawić automatyczne minima i maksima pokaże w tym tutorialu. Zaczynamy od utworzenia nowego projektu. Do projektu dodałem następujące elementy:

Rodzaj elementu Nazwa elementu ustawienia
Form Form1 Name: Form1
Text: Sterowanie wykresem
Size: 857; 523
Chart Wykres Name: Wykres
Anchor: Top, Bottom, Left, Right
Size: 817; 338
Location: 12; 37
Dodałem jedną serię danych.
Button WczytajDane Text: Wczytaj dane
Location: 12; 8
Name: WczytajDane
Button lewy1 Text: <<
Location: 8; 383
Size: 19; 43
Name: lewy1
Anchor: Bottom, Left
Button lewy2 Text: <<
Location: 8; 436
Size: 19; 43
Name: lewy2
Anchor: Bottom, Left
Button prawy1 Text: >>
Location: 810; 383
Size: 19; 43
Name: prawy1
Anchor: Bottom, Right
Button prawy2 Text: >>
Location: 810; 436
Size: 19; 43
Name: prawy2
Anchor: Bottom, Right
TrackBar1 TrackBar1 Location: 33; 381
Size: 771; 45
RightToLeft: No
Anchor: Bottom, Left, Right
BackColor: White
Name: TrackBar1
TrackBar2 TrackBar2 Location: 33; 432
Size: 771; 45
RightToLeft: No
Anchor: Bottom, Left, Right
BackColor: White
Name: TrackBar2
 OpenFileDialod   OpenFileDialod1  Name: OpenFileDialod1

Po ustawieniu tych obiektów powinniśmy otrzymać konstrukcję taką jak na obrazku poniżej:

Sterowanie_wykresem1

 

Ja osobiście lubię gdy mój wykres ma specyficzny wygląd jest wtedy według mnie bardziej czytelny, ale wam zostawiam dowolność. Następnym etapem będzie wczytanie danych. Ja lubię gdy dane wczytywane są ze zwykłego pliku *.txt jeśli komuś to nie odpowiada może użyć bazy danych albo przenosić pliki z excela. Wszystkie te możliwości były opisywane na blogu, jeśli ktoś nie wie co i jak niech napisze w komentarzach. Tworzymy uchwyt do naszego przycisku (klikamy go dwukrotnie). Na starcie będziemy potrzebować zmiennej i listy typu double. Kod z opisem prezentuje poniżej:

Zajmiemy się teraz funkcją która załaduje nam dane z pliku *.txt do listy o nazwie „dane”. Dodamy możliwość wstawienia separatora, da nam to możliwość importowania list z plików *.CSV . Kod do ładowania danych wygląda następująco:

Po załadowaniu danych wystarczy teraz tylko wyświetlić w naszym wykresie. Jak widzicie posłuży nam do tego metoda tworz_wykres. Najpierw musimy importować wymaganą bibliotekę, nad „Public Class” dodajemy linijkę:

Kod metody tworz_wykres:

Wygląda to nieźle według mnie, po załadowaniu znacznej ilości danych mój wykres wygląda tak:

Sterowanie_wykresem2

Widzimy ładnie zachowane minima i maxima które pozwalają wypełnić całą przestrzeń wykresu. Jak to bez tych opcji wygląda:

Sterowanie_wykresem3

Chyba trochę słabo. Najbardziej widoczne jest to wtedy gdy nasze dane są bardzo małe jak np. dane z rynku FOREX. Wystarczy teraz tylko dodać funkcjonalność Trackbarów i przycisków:

Po zbliżeniu nasz wykres będzie wyglądał tak:

Sterowanie_wykresem4

No i ładnie. Jak zawsze dorzucam pliki do pobrania:

Projekt: Zblizanie_Wykresu

Dane wykorzystane w tutorialu: nowa

Jeśli ktoś jest zainteresowany tylko programem to proszę: Wykres interaktywny

Film prezentujący program :

 

Permalink do tego artykułu: https://visualmonsters.cba.pl/wykres-interaktywny/

Dodaj komentarz

Twój adres email nie będzie publikowany.