Magia wizualizacji bez kalkulacji w Tableau: Lolipop chart i Donut chart

mar 9, 2018

Business Intelligence

Tableau

banery data science

Rozbudowane prezentacje i wizualizacje w Tableau, często bazują nie tylko na wartościach dostępnych bezpośrednio w bazie danych, ale również na dodatkowych kalkulacjach, które są tworzone przy pomocy pól kalkulowanych (Calculated fields). W serii Magia wizualizacji bez kalkulacji przedstawimy te wykresy, które można wykonać korzystając jedynie z elementów dostępnych bezpośrednio w bazie danych.

Większość przykładów została oparta na testowej bazie „Sample superstore”, dostarczanej z każdą instalacją Tableau. Superstore zarówno w Windows jak i na Mac’u znajdziesz w lokalizacji „Dokumenty > My Tableau Repository > Datasources”. Każdy przykład zaczyna się od etapu, w którym źródło danych jest już podłączone.

Lolipop chart

To bardzo prosty w przygotowaniu i efektowny rodzaj wizualizacji, który może zarówno stanowić alternatywę dla zwykłego bar charta jak i posłużyć do zestawienia ze sobą dwóch wartości, np. ilości sprzedanych produktów z ilością zwrotów. Zacznijmy jednak od pierwszej opcji;

Wizualizację oprzemy o miarę Sales, którą przeciągamy do obszaru Columns. Dane będziemy wyświetlać dla stanów w południowym regionie sprzedaży, więc pola State i Region z obszaru Dimensions umieszczamy kolejno w modułach Rows i Filters. W polu filtra zaznaczamy region South.

Następnie z pola Measures ponownie wybieramy miarę Sales i umieszczamy ją w obszarze Columns. W Twoim widoku pojawią się dwa wykresy obok siebie. Kliknij rozwijaną listę przy drugiej pigułce Sales i zaznacz opcję Dual axis. Tworząc wykres dwuosiowy zawsze warto pamiętać o możliwości synchronizowania osi. W tym konkretnym przypadku nie ma takiej potrzeby, ponieważ na obu stronach wykresu prezentujemy tą samą miarę, nie mniej jest to opcja która ma znaczący wpływ na to, jak wizualizowane wielkości prezentują się względem siebie. Możesz się również spotkać z sytuacją, w której synchronizowanie osi nie będzie konieczne, natomiast ważne jest to, żebyś miał świadomość korzystania z poszczególnych opcji. W celu włączenia synchronizacji osi, klikamy prawym przyciskiem myszy na jedną z nich i wybieramy pozycję Synchronize Axis.

Zwróć uwagę na to, że kiedy w polach Columns i Rows znajduje się więcej niż jedna miara, to w polu Marks (środkowy panel) pojawiają się nowe zakładki. W naszym przykładzie, przy dwóch miarach mamy dostępne trzy zakładki, czyli: All, SUM(Sales) i SUM(Sales) (2). Zmiany wprowadzane w zakładce All będą wpływały na wygląd wszystkich miar w naszym widoku. Pozostałe zakładki natomiast, odpowiadają za widok pojedynczych miar. Po tym krótkim wyjaśnieniu, wróćmy do pracy: wybierz pierwszą zakładkę SUM(Sales) i za pomocą rozwijanego menu zmień rodzaj wykresu na Bar. Następnie kliknij kwadracik Size i ustaw najmniejszą możliwą grubość linii. Nasz Lolipop Chart jest gotowy, a Ty możesz według własnych upodobań zmienić jego wygląd, dodając etykiety lub inne dodatkowe elementy.

Drugą możliwością wykorzystania podobnego wykresu, jest zestawianie ze sobą dwóch różnych wartości. Nie będziemy jednak skupiać się na tym, jak zbudować wykres od początku, a na przebudowaniu tego który już mamy. Na wstępie zduplikuj istniejący arkusz klikając prawym przyciskiem myszy na Sheet 1 w pasku arkuszy na dole strony – w menu wybierz opcję Duplicate. W nowym widoku pokażemy dane, które dotyczą ilości zrealizowanych zamówień przez poszczególnych przedstawicieli i ilości zamówień, które zostały zwrócone przez klientów. Dane dotyczące zwrotów i przedstawicieli są w oddzielnych tabelach źródła „Superstore”. W pierwszym kroku dodamy je do naszego modelu danych, żeby móc je wykorzystać w nowym widoku.

Przejdźmy do ekranu Data source. Przeciągamy dwie kolejne tabele do obszaru w którym wcześniej umieściliśmy pierwszą z nich, zatytułowaną Orders. W obu przypadkach zmieniamy typ połączenia na Left join.

Wracamy do nowego arkusza Sheet 1 (2). Na tym etapie warto również nazwać arkusze w taki sposób, żebyś w przyszłości mógł szybko wrócić do istotnych na daną chwilę treści. W tym przykładzie nadałem im nazwy Lolipop chart 1 i Lolipop chart 2.

Z pewnością już zauważyłeś, że panel danych został rozszerzony o dwie dodatkowe tabele. Przejdźmy zatem do budowy widoku. Na początku usuń filtr Region, a w polu Rows pigułkę State zamień na Person. Obok niej, dodaj również kolejną, Ship mode. Zwróć uwagę, że pigułki możesz zamienić zarówno usuwając jedną z nich i dodając na jej miejsce inną, lub po prostu upuszczając nową nad tą, która nie będzie Ci już potrzebna.

W bazie danych nie mamy bezpośrednio podanej ilości zamówień ani ilości zwrotów, natomiast możemy takie miary stworzyć. Zduplikuj pole Order ID, odnajdź kopię i otwórz rozwijane menu – wybierz opcję Convert to measure. W tej chwili nasze pole Order ID (copy) zostało przeniesione do panelu Measures a w jego nazwie dodatkowo widnieje informacja (Count (Distinct)). Oznacza to, że pole, które do tej pory przechowywało wartości tekstowe będzie teraz wyświetlało ilość wystąpień unikalnych wartości w obrębie kolumny Order ID w bazie danych. Podobną rolę pełni funkcja Count, natomiast odpowiada za wyświetlanie ilości wszystkich wystąpień zmiennej w danej kolumnie. Możemy to zobrazować prostym przykładem – jeśli w kolumnie mamy wartości:

ZAM-1

ZAM-2

ZAM-2

ZAM-3

to Count Distinct zwróci wartość 3 a Count wartość 4.

Wróćmy jednak do wizualizacji. Taką samą operację jaką wykonałeś z polem Order ID powtórz z tożsamym polem z tabeli Returns. Kiedy będziesz miał dwie nowe miary, pierwszą z nich zamień z pierwszą pigułką SUM(Sales) w sekcji Columns, po czym analogiczną operację wykonaj z drugą parą miar. Następnie przejdź do sekcji Marks, wybierz zakładkę odpowiadającą za kolor miary z tabeli Returns i zmień jej kolor na dowolny inny.

Donut chart

Zgodnie z najlepszymi praktykami prezentacji danych, istnieje szereg rzeczy, których powinniśmy się wystrzegać chcąc stworzyć dashboard idealny. Jedną z dróg prowadzących do perfekcji jest to, żeby nie pozostawić odbiorcy żadnych wątpliwości w kwestii wielkości miar przedstawionych na naszych wykresach. Dlatego właśnie dla wielu profesjonalnych developerów wykresem zakazanym pozostaje pie chart, czyli wykres kołowy. Przykład? Te same dane zostały przedstawione na wykresie kołowym i słupkowym. Na popularnym bar charcie, odbiorca na pierwszy rzut oka jest w stanie odróżnić, które kraje raportują wyższą a które niższą sprzedaż. Pie chart, mimo że korzysta z dodatkowego atrybutu, czyli koloru, nie jest w stanie na pierwszy (ani nawet na trzeci! ☺) rzut oka dostarczyć tych samych informacji równie precyzyjnie. W poniższym przykładzie celowo użyłem ponad 10 elementów żeby nieco przerysować efekt o którym mówię, jednak prawda jest taka, że pie chart pozostaje nieczytelny już przy trzech elementach o podobnych wielkościach.

Ale głowa do góry! Jeśli mimo wszystko pozostajesz zwolennikiem okrągłych wykresów, mam dla Ciebie pewną alternatywę. Ewolucje popularnego „ciasta” stanowi wykres o równie słodkiej nazwie, czyli Donut chart. Również nie polecam stosowania go dla wielu elementów, jednak są sytuacje, w których potrafi on się obronić jako ciekawa forma prezentacji.

Żeby go stworzyć, z panelu Measures wybierz pigułkę Number of Records i na jej podstawie stwórz wykres dual axis w taki sam sposób jak w poprzednim przykładzie. Następnie przy obu elementach rozwiń menu i w podmenu Measure zamień Sum na Minimum. Spowoduje to, że miara na wykresie będzie wyświetlana w swojej minimalnej wartości.

Number of Records to domyślnie generowane pole kalkulowane, którego wartość wynosi 1 (możesz to podejrzeć wchodząc w jego edycję). Jeśli sposób wyświetlania miary pozostawimy jako Sum, również będziemy w stanie stworzyć nasz wykres. Natomiast oś, na której będzie wyświetlany Dount będzie wyskalowana do wartości naszej miary, która w tym przypadku będzie sumą ilości rekordów w bazie danych. Number of Records jako pole kalkulowane jest dodatkową kolumną dodaną do modelu danych, w której komórki w każdym wierszu mają wartość 1. Dlatego też jego suma jest zawsze równa ilości rekordów. Zmiana sposobu wyświetlania miary na Minimum, w praktyce ma na celu ograniczenie osi wykresu w taki sposób, żeby nasz Dount znajdował się na środku obszaru roboczego, bez zbędnych pustych przestrzeni.

W kolejnym kroku, przejdź do panelu Marks i w zakładce All zmień rodzaj wykresu z Automatic na Pie. Zauważ, że w Marks pojawiła się nowa opcja Angle.

To co teraz widzisz na ekranie to dwa wykresy typu Pie, nałożone idealnie na siebie. Zamień teraz sposób wyświetlania wizualizacji ze Standard na Entire View (górny pasek menu). Następnie przejdź do pierwszej zakładki MIN(Number of Records) w Marks. Przeciągnij element Ship mode z panelu Dimensions na kwadracik Color. Użyj również opcji Size, żeby powiększyć dolny Pie chart. Następnie umieść miarę Sales w obszarze Angle. Oba elementy zduplikuj również jako Label.

Przejdź do drugiej zakładki Number of Records i zmień kolor na biały. Następnie dodaj miarę Sales do sekcji Label i stwórz jej nagłówek.

Ostatnie trzy rzeczy, które musisz wykonać to:

  • dostosowanie odpowiedniej wielkości Donut’a przy pomocy pól Size
  • usunięcie zbędnych elementów takich jak osie wykresu (kliknij prawym przyciskiem myszy na oś i odznacz Show header)
  • usunięcie pozostałych linii, które edytujesz w opcjach formatowania wykresu.

To już wszystko co przygotowałem dla Ciebie w pierwszym artykule z serii Magia wizualizacji bez kalkulacji w Tableau. Mam nadzieję, że ta wiedza będzie dla Ciebie przydatna i w niedalekiej przyszłości wykorzystasz ją tworząc własne raporty. Jeśli masz jakieś pytania lub uwagi, napisz komentarz lub skontaktuj się ze mną mailowo: sw@astrafox.pl.

Video ze szczegółowymi instrukcjami jak stworzyć oba wykresy znajdziesz tutaj.