Wykres liniowy to jeden z podstawowych wykresów wykorzystywanych w wizualizacji danych. Sprawdza się szczególnie w przedstawieniu przebiegów czasowych, gdyż połączenie poszczególnych punktów wskazuje na ciągłość danych. Wykresy liniowe i ich różne warianty odnajdziemy więc na wielu dashboardach i sprawdzą się wszędzie tam, gdzie mamy do czynienia z ujęciem czasowym. Z uwagi na ich wysoką użyteczność, czasem mierzymy się z problem czytelności danych, zwłaszcza gdy mamy dużo przebiegów i chcemy porównywać je między sobą. Prowadzi to do powstania tworu nazwanego „wykresem spaghetti”, z uwagi na niską czytelność i ogólny chaos wizualny przypominający poplątane nitki makaronu. Jest jednak kilka sposób „rozplątania” takiego wykresu w Tableau.
Budujemy wykres spaghetti
Zanim przejdziemy do rozwiązań, musimy stworzyć sam wykres aby zrozumieć jakie stwarza problemy. Zacznijmy od prostego przebiegu wartości sprzedaży w czasie:

Wykres jest czytelny, przejrzysty, można wyczytać z niego pewne trendy. Dodajmy na początek jeden dodatkowy wymiar z trzema kategoriami:

Tutaj już zaczynają się schody – wykresy nakładają się na siebie, czytelność jest już dużo niższa, ale jeszcze nie tragiczna. Dodajmy bardziej szczegółowy widok:

Powyższe już śmiało możemy nazwać wykresem spaghetti – linie nakładają się na siebie, nie sposób ich rozróżnić, zobaczyć jakiekolwiek trendy, porównać między sobą. Wykres w tej postaci jest kompletnie bezużyteczny dla odbiorcy i wymaga nieco pracy, aby można było z niego skorzystać.
Pierwszy sposób – wyróżniamy przebiegi
Pierwszym sposobem radzenia sobie z nadmiarem linii jest wyróżnienie interesującego nas przebiegu. Można to zrobić na kilka sposobów – zacznijmy od filtrowania. Jest to podstawowa metoda interakcji z wykresem i eliminuje nadmiar informacji:

Mamy tu jednak pewną wadę – reszta przebiegów jest całkowicie niewidoczna, nie widzimy jak na ich tle wypada nasza linia. Możemy to obejść wykorzystując highlighter, czyli podświetlenie:

Wygląda to już dużo lepiej – po pierwsze mamy jasno wyróżniony przebieg plus cały pozostały szum zostaje niejako w tle. Highlight ma jednak pewne wady – kliknięcie gdziekolwiek na wykresie resetuje ustawienie oraz nie mamy wpływu na formatowanie wyróżnionej linii. Możemy to obejść wykorzystując parametr – zacznijmy od jego stworzenia na podstawie pola Sub-Category:

Następnie tworzymy pole obliczeniowe true/false:

W kolejnym kroku dodajemy powyższe pole obliczeniowe w rozmiar (size) oraz kolor. Mamy tym samym kontrolę nad grubością linii oraz ich kolorem, czego nie mieliśmy w przypadku highlightera . Ustawiamy więc odpowiednią skalę grubości oraz barwy, uzyskując pożądany efekt:

Drugi sposób – oddzielamy przebiegi
Poprzedni sposób jest efektywny, ale wymaga interakcji użytkownika – czy to poprzez filtrowanie czy podświetlanie. Czasem zależy nam bardziej na statycznym ujęciu, przykładowo w celach prezentacyjnych. Pierwszym sposobem ciężko też porównywać przebiegi między sobą – bardziej analizujemy wybrany na tle innych. Jeżeli chodzi nam o inny efekt, to możemy spróbować oddzielić przebiegi. W tym celu z pomocą przychodzą small multiples, czyli małe wielokrotności. Czasem możemy spotkać się też z określeniem wykres panelowy.
Podstawowym sposobem będzie rozdzielenie przebiegów w wierszach:

Lub w kolumnach:

Dzięki takiemu ujęciu rozplątujemy wykres – poszczególne przebiegi są rozdzielone i przez to bardziej czytelne. W przypadku wspólnej osi czasu łatwo jest porównywać przebiegi w tych samych punktach, z kolei na wspólnej osi dla miary łatwiej porównać różnice między kategoriami. Powyższe sprawdzi się jednak dla małej liczby kategorii – jeżeli będzie ich więcej, przebiegi staną się nieczytelne albo będą wymagać suwaka do przesuwania:

Jak więc poradzić sobie w takiej sytuacji? Najprościej tworząc siatkę wykresów, czyli tzw. grid. Możemy to zrobić na kilka sposobów, najprostszym będzie grupowanie kategorii w wiersze i kolumny. W kolumnach grupujemy po 4 elementy od początku listy, a w wierszach co 4 elementy:


Kolejnym krokiem jest dodanie odpowiednio powyższych pól w kolumny i wiersze, uzyskując tym samym siatkę wykresów:

Wykres wymaga nieco formatowania, możemy dodać też etykiety kategorii w postaci dual-axis (tworząc miarę zwracającą max sales aby uzyskać odpowiednie położenie etykiety):

Zyskujemy tym samym rozdzielone przebiegi, do tego łatwe do porównania między sobą – zarówno nominalnie jak i w czasie.
Rozwiązanie zależy od celu
Mierząc się z problemem wykresu spaghetti, najgorszym co możemy zrobić to zostawić go w pierwotnej postaci. Jeżeli zależy nam na szczegółowej analizie konkretnego przebiegu, to lepszym rozwiązaniem będzie sposób pierwszy, czyli wyróżnienie danej linii a usunięcie całej reszty w tło. Wymaga to jednak interakcji ze strony użytkownika – jest to więc bardziej dynamiczny sposób analizy. Jeżeli potrzebujemy statycznego obrazu, to lepszym rozwiązaniem będzie wykres panelowy (małe wielokrotności). Dla małej liczby kategorii możemy wykorzystać pojedynczy wiersz lub kolumnę, a dla większej liczby kategorii – siatkę wykresów (grid).
Mateusz Karmalski Tableau Author
