Biblioteka FastReport Business Graphics zawiera zestaw klas, które programiści mogą wykorzystać w swoich aplikacjach do wizualizacji danych i tworzenia wykresów biznesowych. W tym artykule zajmiemy się jedną z takich klas - wykresem typu Bubble.
Przegląd wykresu kołowego warto rozpocząć od porównania go z innymi podobnymi wykresami w bibliotece FastReport Business Graphics. Głównym celem wszystkich tych wykresów jest wizualne przedstawienie wartości, poziomów zagnieżdżenia hierarchii oraz umożliwienie użytkownikowi interaktywnego manipulowania widokiem prezentowanych danych w celu osiągnięcia pożądanego wariantu wyświetlania. Wykresy takie są narzędziami do interpretacji danych modelu Business Intelligence. Zastosowanie tych narzędzi może przynieść efekt w postaci podjęcia właściwej decyzji biznesowej lub wygenerowania spostrzeżeń do analizy w późniejszym czasie.
Na początek spróbujmy ocenić chwilową percepcję kształtu i wielkości wartości podczas wizualizacji za pomocą wykresów ze zbioru biblioteki. Poniżej znajduje się ten sam zbiór danych z danymi dotyczącymi liczby wylotów statków kosmicznych oraz ich reprezentacja za pomocą różnych wykresów. Wystarczy spojrzeć na każdy z wykresów i określić swoje odczucia - komfort percepcji i możliwość porównywania wartości.
TreeMap
Icicle
Sunburst
Bubble
Wartości są interpretowane jako powierzchnia wizualizowanego obiektu. Użytkownikowi łatwiej jest oceniać obiekty mające kształt koła. Na przykład w pierwszej Mapie drzew porównanie powierzchni prostokątów o nazwach USA i Chiny jest bardzo trudne ze względu na różne wymiary wysokości i szerokości. Na wykresie typu Icicle wartości te są bardzo podobne do siebie, podobnie jak na wykresie typu Sunburst.
Natomiast na wykresie kołowym wartości te są znacznie inne i od razu widać, że pomarańczowe koło jest nieco większe. Ludzie mają widzenie obuoczne, które pomaga im oceniać wielkość i odległość obiektów. To wszystko działa dobrze w otaczającym nas trójwymiarowym świecie, ale podczas korzystania z projekcji na monitorze lub kartce papieru widzenie obuoczne może sprawiać nam trudności. Zaczynamy używać pojęć takich jak "patrzenie oczami" i polegać na zmysłach. Wielkość obiektów jest oceniana najdokładniej w obszarze, na który kierujemy wzrok. Wszelkie inne obiekty postrzegane za pomocą widzenia peryferyjnego nie pozwalają na dokładną ocenę ich wielkości. Ważny jest również kąt widzenia - przesunięcie spojrzenia w stosunku do kierunku głowy. Odległość do oczu będzie różna, co wpłynie na prawidłowe oszacowanie wielkości. Paleta kolorów i kontrast również odgrywają dużą rolę w prawidłowym postrzeganiu wielkości.
Mając na uwadze wszystkie te niuanse, oczywiste jest, że wykresy muszą być tworzone względem pewnego centrum, na które będzie skierowany ludzki wzrok. Najważniejsze wartości (czyli te o największym rozmiarze) powinny znajdować się w centrum wykresu. Te obiekty będą oceniane przez użytkownika jako pierwsze. Wszystkie te zasady są wykorzystywane w wizualizacji danych za pomocą wykresu kołowego.
Możliwości wykresu typu Bubble nie są ograniczone do porównywania prostej listy wartości. Podobnie jak inne wykresy z pakietu FastReport Business Graphics, również ten wykres może wizualizować dane hierarchiczne w postaci wykresów wachlarzowych wartości na jednym poziomie hierarchii.
Wykres bąbelkowy jest interaktywny. Po najechaniu kursorem na koło pojawia się informacja o wyświetlanej wartości. Klikając, można zaznaczyć wybrane koło. Dwukrotne kliknięcie powoduje wykonanie operacji drill-down i wyświetlenie na wykresie informacji o obiektach podrzędnych w hierarchii. Dwukrotne kliknięcie w bieżącym obszarze hierarchii powoduje powrót do poprzedniego poziomu.
Podpisy dotyczące obiektów są wyświetlane w środku koła, jeśli nie ma obiektów podrzędnych, lub w górnej części koła. Jeśli napis nie może zostać wyświetlony ze względu na mały rozmiar wolnego miejsca w obiekcie, napis nie będzie widoczny, ale podpowiedź zostanie zachowana po przesunięciu kursora. Wartości o bardzo małych rozmiarach w stosunku do obiektu nadrzędnego nie są widoczne na wykresie.
Układ kółek na wykresie jest tworzony automatycznie przy użyciu algorytmu. Są one ułożone wokół środka wykresu w sposób malejący według wartości.
W kodzie programu można nadpisać funkcje obsługi zdarzeń i wykonać dalsze czynności. Istnieje również zdarzenie, które pozwala dostosować sposób wyświetlania elementów wykresu.
Oprócz wartości, które są interpretowane jako powierzchnia, istnieje możliwość wizualizacji według wartości bezwzględnej. Może to być przydatne do porównywania rozmiarów geometrycznych obiektów. Na przykład średnic planet.
Więcej o wykresie kołowym i źródłach danych można znaleźć w dokumentacji.
Teraz proponuję krótko omówić algorytm tworzenia wykresu kołowego. Zasada łączenia kół oparta jest na algorytmie Grokkera. Dla każdego poziomu hierarchii zagnieżdżonych struktur działa osobna instancja elementu pakującego. Podczas wizualizacji koła są skalowane do odpowiedniego rozmiaru.
Wykres jest tworzony przez dodanie dwóch pierwszych okręgów. Następnie dodaje się kolejno koła do zewnętrznego zamkniętego łańcucha obiektów, uwzględniając algorytm unikania przecięć. Łańcuch jest każdorazowo rozpoczynany od koła znajdującego się najbliżej środka wykresu.
Po dodaniu wszystkich obiektów zostanie utworzona sekwencja obiektów wokół początkowego środka.
W dalszej części pracy można użyć powstałej w ten sposób listy współrzędnych i wymiarów do wizualizacji wykresu kołowego.
Podczas pracy z wykresem kołowym należy zwrócić szczególną uwagę na dane źródłowe. Liczba wartości na jednym poziomie hierarchii nie powinna być zbyt duża. W przeciwnym razie percepcja skonstruowanego wykresu może być utrudniona. Należy również zastosować wstępne grupowanie małych wartości w celu połączenia ich w jedną wartość (na przykład: "Inne"). Ustawiając maksymalną głębokość wyświetlania, warto również ograniczyć się do jednego lub dwóch poziomów, aby poprawić przejrzystość wykresu.
Przed ustawieniem parametrów i właściwości kolorystycznych wykresu zawsze warto pamiętać o celu, w jakim jest on tworzony. Kolor często może ułatwić postrzeganie pewnych wartości. Dobierając paletę barw, należy zwrócić uwagę na kontrast wartości kolorystycznych, nie należy łączyć na tym samym wykresie kolorów bardzo nasyconych i bladych. Należy również unikać zbyt ciemnych kolorów podczas wyświetlania (drukowania) wykresu na jasnym tle. To samo dotyczy kolorów o niskim kontraście w stosunku do koloru tła. Zastosowanie cieniowania w wypełnieniach może utrudnić dostrzeżenie wymiarów.
Wykres kołowy jest prostym narzędziem wizualizacji i może być wykorzystywany w aplikacjach jako jedno z narzędzi Business Intelligence, jak również w innych komponentach biblioteki grafiki biznesowej FastReport. Przykład zastosowania wykresu można zobaczyć w folderze \Demos\C#\MainDemo.
Wszystkim życzę wielu ciekawych i praktycznych diagramów!