top of page
  • szudejkomichal

Python + Plotly: Przydatne i darmowe narzędzia do tworzenia wizualizacji, poradnik

Zaktualizowano: 7 gru 2023

Ten post jest drugim z mini cyklu, w którym przedstawiam kilka przydatnych, darmowych i prostych w obsłudze narzędzi, umożliwiających tworzenie efektownych wizualizacji.


Dziś skupię się na języku programowania Python wraz z biblioteką Plotly.

"Waterfall" chart.

Wstęp

W dzisiejszym poście na tapetę weźmiemy też jakże lubiany przez controllerów typ wykresu: wykres kaskadowy, czasem nazywany też wykresem waterfall. Jest to wykres, z którym spotkamy się wcześniej czy później np. przy okazji prezentacji budżetu czy sprawozdania finansowego. Pokazuje on dekompozycję zmiany pomiędzy dwoma scenariuszami (np. wykonaniem a budżetem), ze wskazaniem jej poszczególnych składowych.


Wykres kaskadowy pozwala zobrazować, w jaki sposób początkowa wartość zmienia się w wyniku serii dodatnich i ujemnych zmian, prowadząc do końcowej wartości.

Wykres kaskadowy składa się z kolumn, które mogą być ustawione w pionie lub w poziomie. Kolumny przedstawiają poszczególne składniki, które mają wpływ na zmianę początkowej wartości. Dodatnie zmiany zazwyczaj są przedstawiane kolumnami koloru zielonego, natomiast ujemne - kolumnami koloru czerwonego.


Pierwsza kolumna wykresu przedstawia początkową wartość, ostatnia kolumna przedstawia końcową wartość, a kolumny pomiędzy przedstawiają poszczególne zmiany, które wpływają na przejście od wartości początkowej do końcowej.

Wykres przygotowany w Python z wykorzystaniem Plotly.
Wykres przygotowany w Python z wykorzystaniem Plotly. Zrzut ekranu wykonany przez autora.

Podobnie jak w przypadku wykresu Sankeya, dylematem jest wybór narzędzia do narysowania takiego wykresu. Problemem nie jest, gdyż można go łatwo przygotować w Excelu. Natomiast narzędzia takie jak opisany poprzednio Google Charts, czy PowerBI nie oferują takiego wykresu. Jest co prawda w palecie wizualizacji coś, co nazwano w tych aplikacjach wykresem kaskadowym. Faktycznie jednak jest to po prostu zmodyfikowany wykres świecowy.

Wykres kaskadowy czy raczej wykres świecowy w Google Charts.
Wykres kaskadowy w Google Charts. Zrzut ekranu wykonany przez autora.

W dzisiejszym poście chciałbym zagłębić się w możliwości języka Python. Pokażę też Wam, jak kompletnie nie znając tego języka, można w nim programować. Aby to osiągnąć, będziemy korzystać z ChatGPT.

 

Język Python i Plotly

Python to popularny i wszechstronny język programowania. Jest on często używany do tworzenia różnego rodzaju aplikacji, od prostych skryptów po zaawansowane aplikacje internetowe i systemy informatyczne.


Oto kilka głównych cech Pythona:

  1. Prostota i czytelność: Python został zaprojektowany w taki sposób, aby jego składnia była czytelna i intuicyjna. To sprawia, że jest to doskonały język zarówno dla początkujących programistów, jak i doświadczonych inżynierów.

  2. Wieloplatformowość: Python jest dostępny na wielu platformach, co oznacza, że ​​możesz pisać kod Pythona na jednym systemie operacyjnym i uruchamiać go na innym bez większych problemów.

  3. Wszechstronność: Python jest używany w wielu dziedzinach, takich jak rozwijanie aplikacji internetowych, analiza danych, uczenie maszynowe, automatyzacja, tworzenie gier, programowanie systemowe i wiele innych.

  4. Duża społeczność i biblioteki: Python ma aktywną społeczność programistyczną, która tworzy wiele bibliotek i narzędzi, które można używać w projektach. To pozwala na znaczne przyspieszenie procesu programowania.

  5. Interpretowany język: Python jest językiem interpretowanym, co oznacza, że ​​nie trzeba kompilować kodu źródłowego. Napisany kod można natychmiast uruchamiać.

  6. Open Source: Python jest oprogramowaniem open source, co oznacza, że ​​jest dostępny za darmo i można go swobodnie modyfikować i dystrybuować.

Python ma wiele zastosowań. Dzięki swojej elastyczności i popularności jest jednym z najczęściej wybieranych języków programowania na świecie.


Plotly to biblioteka do tworzenia interaktywnych wykresów i wizualizacji danych w języku Python. Jest to narzędzie open source, które umożliwia programistom i analitykom danych tworzenie atrakcyjnych i interaktywnych wykresów, które można łatwo dostosowywać i udostępniać. Plotly obsługuje wiele różnych typów wykresów, takich jak wykresy liniowe, wykresy słupkowe, wykresy punktowe, wykresy kołowe, mapy cieplne i wiele innych.

Główne cechy Plotly to:

  1. Interaktywność: Wykresy generowane za pomocą Plotly są interaktywne, co oznacza, że ​​użytkownicy mogą przybliżać, oddalać, przesuwać i sterować nimi,

  2. Wsparcie dla wielu platform: Plotly działa na wielu platformach i może być używane w różnych środowiskach, w tym w aplikacjach internetowych, aplikacjach desktopowych i innych.

  3. Dostosowywanie wykresów: Plotly umożliwia dokładne dostosowywanie wyglądu wykresów, takie jak zmiana kolorów, stylu linii, etykiet i innych właściwości, aby dopasować je do konkretnych potrzeb.

  4. Wsparcie dla różnych typów danych: Plotly jest zdolne do obsługi różnych typów danych, w tym danych liczbowych, czasowych, kategorialnych oraz danych geograficznych.

  5. Integracja z innymi narzędziami: Plotly może być łatwo zintegrowane z innymi narzędziami i bibliotekami Pythona.

Plotly jest popularnym narzędziem w dziedzinie analizy danych, wizualizacji danych, nauki danych i biznesowej analizy danych. Dzięki jego elastyczności i interaktywności jest często wybierane do tworzenia dynamicznych i atrakcyjnych raportów oraz interaktywnych aplikacji opartych na danych.


Narzędzia potrzebne do pracy w Python

Żeby przygotować wykres w Python, będziemy potrzebować kilku narzędzi. Zgodnie z założeniem mini cyklu, wszystkie wykorzystane narzędzia muszą być darmowe. Drugim założeniem był brak konieczności instalowania oprogramowania.


Teoretycznie, aby pisać w Python nie jest konieczne instalowanie żadnego oprogramowania. Istnieją środowiska takie jak Google Collab. Wystarczy napisać lub wkleić tam kod i go uruchomić. Natomiast oznaczać to będzie konieczność publikacji danych w Internecie, czego z założenia chcieliśmy uniknąć. Rozwiązaniem jest instalacja darmowego pakietu Anaconda. Zawiera on wszystkie niezbędne komponenty do pracy. A będą to:

  • Anaconda Powershell Prompt: jest to nic innego jak ekran poleceń. W razie potrzeby możemy instalować tam potrzebne biblioteki.

  • Spyder: edytor języka Python, w którym będziemy wpisywać / wklejać kod Python oraz go uruchamiać.

Instalacja Anaconda jest bardzo prosta. Pobieramy plik instalacyjny z tej strony, a następnie uruchamiamy go na naszym komputerze. Po kilku minutach mamy komplet narzędzi.


I teraz uwaga! Nie musimy znać jednej komendy języka Python, aby w nim pracować. W pisaniu kodu pomoże nam ChatGPT w darmowej wersji 3.5.


Zalety Pythona i Plotly jako narzędzia wizualizacji:

  1. Bogata galeria dostępnych wizualizacji oraz szerokie możliwości ich dostosowania do indywidualnych potrzeb użytkownika.

  2. Możliwość pisania kodu w ChatGPT.

  3. Interaktywność wykresów: wykres może być zapisany w pliku HTML i zawierać elementy interaktywne jak Tooltips.

  4. Gotowe wizualizacje można osadzić na stronie internetowej czy zapisać do pliku graficznego.


Wady Pythona i Plotly jako narzędzia wizualizacji:

  1. Raczej nie uciekniemy od instalowania komponentów, np. pakietu Anaconda. Szczęśliwie, jest to rozwiązanie bezpieczne i darmowe.

  2. Brak możliwości osadzenia wizualizacji np. w PowerPoint (tak aby np. zachowała interaktywność działania).

Jak przygotować wizualizację w Python i Plotly?

Krok 1. Zdobądź i przygotuj dane.

Rozpocznij od zebrania i starannego przygotowania potrzebnych danych. Upewnij się, że są one wiarygodne i kompleksowe. W tym etapie zwróć uwagę na selekcję istotnych informacji. Po wybraniu narzędzia, konieczne może być też dostosowanie danych do jego wymagań.


Dekalog wizualizacji, to zbiór fundamentalnych zasad, które pomogą Ci stworzyć wizualizacje wspierające narrację opartą na danych. Szerzej opisałem go w tym artykule.


Krok 3. Zaprojektuj wizualizację.

Projektowanie wizualizacji odbędzie się całkowicie w ChatGPT, przy pomocy prostych promptów.


Krok 4. Wprowadź dane i przygotuj wizualizację.

Po zaprojektowaniu wizualizacji, przenosimy ją do środowiska docelowego jakim jest Spyder. Tam wykonamy resztę prac.


W przykładzie pokażę Państwu jak przygotować wykres Waterfall.


Jak narysować wykres w Python i Plotly?

Krok pierwszy to napisanie prompta. Może on być tak prosty jak ten wskazany niżej. Oczywiście, uzyskany wynik można potem modyfikować względem specyficznych potrzeb (dodawać, usuwać elementy, sterować czcionkami itd.) - dopisując kolejne elementy lub modyfikując prompt w czat GPT. Na potrzeby niniejszego posta, korzystam z darmowej wersji ChatGPT i modelu GPT-3.5.

Prompt do ChatGPT.
Prompt do ChatGPT. Zrzut ekranu wykonany przez autora.

Na podstawie powyższego prompta, ChatGPT wygenerował poniższy kod. Po kliknięciu ikony "Copy code", możemy przenieść go do edytora Spyder.

Kod wykresu wygenerowany w ChatGPT.
Kod wykresu wygenerowany w ChatGPT. Zrzut ekranu wykonany przez autora.

Zanim jednak przejdziemy do Spydera, upewnijmy się, że mamy już zainstalowaną bibliotekę Plotly. W tym celu uruchamiamy program Anaconda Powershell Prompt. W wierszu polecenia wpisujemy pip install plotly.

Następnie Plotly zostanie zainstalowane lub otrzymamy następujący widok.

Instalacja Plotly.
Instalacja Plotly. Zrzut ekranu wykonany przez autora.

Możemy też wpisać polecenie pip install -U plotly. Wtedy Plotly zostanie też zaktualizowane do najnowszej wersji.

Następnie uruchamiamy Spyder.


Ikona programy Spyder.
Ikona programu Spyder. Zrzut ekranu wykonany przez autora.

Wklejamy nasz kod do okna po lewej stronie i klikamy "Run" (zielony przycisk "Play").

Okno programu Spyder z wklejonym kodem.
Okno programu Spyder z wklejonym kodem. Zrzut ekranu wykonany przez autora.

Plik z wykresem zapisze się w domyślnym katalogu użytkownika. W moim przypadku ścieżka wyglądała następująco:

Lokalizacja pliku z wykresem.
Lokalizacja pliku z wykresem. Zrzut ekranu wykonany przez autora.

Jeżeli uzyskany wykres jest akceptowalny graficznie, możemy wprowadzić docelowe dane.

Część kodu, w której wprowadzamy wartości.
Część kodu, w której wprowadzamy wartości. Zrzut ekranu wykonany przez autora.

I ponownie uruchomić kod. Nasz wykres jest gotowy. Efekt końcowy możecie zobaczyć tutaj.



Podsumowanie

Niniejszy post jest drugim z serii traktującej o darmowych i prostych narzędziach do tworzenia wizualizacji danych. Dziś skupiłem się na Pythonie i Plotly, nowoczesnym i wszechstronnym języku programowania. Pracę w Pythonie omówiłem na przykładzie wykresu kaskadowego, który świetnie oddaje złożoność zmian w biznesie.


Zalety Pythona i Plotly to m.in.

  • duży wybór wizualizacji,

  • możliwość przygotowania wizualizacji w ChatGPT,

  • łatwość osadzenia wykresu na stronie internetowej oraz

  • interaktywność wizualizacji.

Wady to:

  • konieczność instalacji oprogramowania,

  • trudność w osadzaniu wizualizacji w PowerPoint, analogicznie jak w Google Charts.

 

Źródła:

  1. Michał Szudejko, Dekalog wizualizacji


Wcześniej w tej serii opublikowano:

 
Ikona subskrypcji

Podobał się Ci ten post? Zachęcam do subskrypcji!

bottom of page