Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Rozdziały 5-6-7

  • W kolejnych rozdziałach zagłębimy się w wizualizację danych.

    • Jak tworzyć wizualizacje w Pythonie?

    • O jakich zasadach powinniśmy pamiętać?

    • Jak współpracować z Matplotlib, Pyplot?

    • Jak pracować nad wizualizacjami w Seaborn?

    • Jakie są dobre praktyki tworzenia wizualizacji danych?

  • Następnie, zanim przystąpi do analizy statystycznej, będziemy pracować nad zarządzaniem i czyszczeniem naszych danych.

    • Jak radzić sobie z brakującymi wartościami?

    • Jak sobie poradzić z brudnymi danymi?

    • Jakie są podstawowe sposoby opisywania danych?

Pamiętajcie, ze te rozdziały to integralna część Eksploracyjnej Analizy Danych w Pythonie.

W tym rozdziale

  • Czym jest wizualizacja danych i dlaczego jest ważna?

  • Wprowadzenie do matplotlib.

  • Typy wykresów jednowymiarowych:

  • Histogramy (jednowymiarowe).

  • Wykresy rozrzutu (tzw. scatterplots - dwuwymiarowe).

  • Wykresy słupkowe (takze dwuwymiarowe).

Wprowadzenie: wizualizacja danych

Czym jest wizualizacja danych?

Wizualizacja danych odnosi się do procesu (i wyniku) graficznego przedstawiania danych.

Dla naszych celów w tym rozdziale będziemy mówić głównie o typowych metodach wykresów danych, w tym:

  • Histogramy

  • Wykresy punktowe

  • Wykresy liniowe

  • Wykresy słupkowe

Dlaczego wizualizacja danych jest ważna?

  • Eksploracyjna analiza danych

  • Przekazywanie spostrzeżeń

  • Pokazywanie ukrytych asocjacji w danych

Eksploracyjna analiza danych: Sprawdzanie założeń

Anscombe’s Quartet

title

Przekazywanie informacji

Full Stack Economics

title

Wpływ na zrozumienie świata

Florence Nightingale (1820-1910) był reformatorem społecznym, statystykiem i założycielem nowoczesnego pielęgniarstwa.

title

Wpływ na zrozumienie świata (cz. 2)

John Snow (1813-1858) był lekarzem, którego wizualizacja ognisk cholery pomogła zidentyfikować źródło i mechanizm rozprzestrzeniania się (zaopatrzenie w wodę).

title

Wprowadzenie do matplotlib

Ładowanie pakietów

Tutaj ładujemy podstawowe pakiety, których będziemy używać.

Dodajemy również kilka linijek kodu, które zapewniają, że nasze wizualizacje będą wykreślane „inline” z naszym kodem i że będą miały ładną, wyraźną jakość.

Czym jest matplotlib?

matplotlib to pakiet graficzny dla Pythona.

Zauważ, że seaborn, (który omówimy wkrótce) używa matplotlib „pod maską”.

Czym jest pyplot?

pyplot to zbiór funkcji w ramach matplotlib, które naprawdę ułatwiają wykreślanie danych.

Z pyplot, możemy łatwo wykreślić takie rzeczy jak:

  • Histogramy (plt.hist)

  • Wykresy rozrzutu (plt.scatter)

  • Wykresy liniowe (plt.plot)

  • Wykresy słupkowe (plt.bar)

Przykładowe dane

Załadujmy nasz znajomy zestaw danych Pokemon, który można znaleźć w sekcji data/pokemon.csv.

Loading...

Histogramy

Czym są histogramy?

Histogram to wizualizacja pojedynczej ciągłej zmiennej ilościowej (np. dochodu lub temperatury).

  • Histogramy są przydatne do sprawdzania, jak rozkłada się zmienna.

  • Mogą być używane do określenia, czy rozkład jest normalny, skośny lub bimodalny.

Histogram jest wykresem jednowymiarowym, tj. wyświetla tylko jedną zmienną.

Histogramy w matplotlib

Aby utworzyć histogram, wywołaj plt.hist z pojedynczą kolumną DataFrame (lub numpy.ndarray).

Pytanie: Co mówi nam ten wykres?

<Figure size 640x480 with 1 Axes>

Zmiana liczby przedziałów

Histogram umieszcza dane ciągłe w przedziałach (np. 1-10, 11-20 itd.).

  • Wysokość każdego przedziału odzwierciedla liczbę obserwacji w tym przedziale.

  • Zwiększanie lub zmniejszanie liczby przedziałów zapewnia większą lub mniejszą szczegółowość rozkładu.

<Figure size 640x480 with 1 Axes>
<Figure size 640x480 with 1 Axes>

Zmiana poziomu alpha

Poziom alfa zmienia przezroczystość twojego wykresu.

<Figure size 640x480 with 1 Axes>

Sprawdź się

Jak stworzyć histogram wyników dla Defense?

Sprawdź się

Czy wiesz jak stworzyć histogram wyników dla Typu 1?

Informacja z histogramów

Histogramy są niezwykle przydatne do poznawania kształtu naszego rozkładu.

Możemy zadawać pytania takie jak:

Dane o rozkładzie normalnym

Możemy użyć funkcji numpy.random.normal, aby utworzyć rozkład normalny, a następnie go wykreślić.

Rozkład normalny ma następujące cechy:

  • Klasyczny kształt “dzwonu” (symetryczny).

  • Średnia, mediana i moda są identyczne.

<Figure size 640x480 with 1 Axes>

Skośne dane

Skośność oznacza, że istnieją wartości wydłużające jeden z „ogonów” rozkładu.

  • Skośność dodatnia/prawa: ogon jest skierowany w prawo.

  • Ujemny/lewy skośny: ogon jest skierowany w lewo.

<Figure size 640x480 with 2 Axes>

Punkty odstające

Punkty odstające to punkty danych, które znacznie różnią się od innych punktów w rozkładzie.

  • W przeciwieństwie do danych skośnych, wartości odstające są zazwyczaj nieciągłe w stosunku do reszty rozkładu.

  • W kolejnym rozdziale omówimy więcej sposobów identyfikacji wartości odstających; na razie możemy polegać na histogramach.

<Figure size 640x480 with 1 Axes>

Sprawdź się

Jak opiszesz następujący rozkład?

  • Normalny czy skośny?

  • Z wartościami odstającymi czy bez?

<Figure size 640x480 with 1 Axes>

Sprawdź się

Jak opiszesz następujący rozkład?

  • Normalny czy skośny?

  • Z wartościami odstającymi czy bez?

<Figure size 640x480 with 1 Axes>

Sprawdź się

W nieco prawoskośnym rozkładzie (jak poniżej), co jest większe - średnia czy mediana?

<Figure size 640x480 with 1 Axes>

Rozwiązanie

Średnia jest najbardziej dotknięta skośnością, więc jest ciągnięta najdalej w prawo w rozkładzie prawoskośnym.

<Figure size 640x480 with 1 Axes>

Modyfikacja naszego wykresu

  • Dobra wizualizacja danych powinna również wyjaśniać, co jest wykreślane.

    • Wyraźnie oznaczone osie x i y, tytuł.

  • Czasami możemy również chcieć dodać nakładki.

    • Np. przerywaną pionową linię reprezentującą „średnią”.

Etykiety osi

<Figure size 640x480 with 1 Axes>

Linie pionowe

plt.axvline pozwala nam narysować pionową linię w określonej pozycji, np. średnią kolumny Attack.

<Figure size 640x480 with 1 Axes>

Histogramy z pyplot express

Z pyplot express równiez mozemy tworzyć histogramy:

Loading...

Z pyplot express mozemy narysować kilka histogramów dla różnych wartości jednej kolumny:

Loading...

Grupowanie histogramów

Najciekawsze jest jednak kopanie w danych głębiej - tzw. faceting - grupowanie wykresów:

Loading...

Wykresy rozrzutu

Czym są wykresy rozrzutu?

Wykres rozrzutu to wizualizacja tego, jak dwa różne rozkłady ciągłe odnoszą się do siebie.

  • Każdy pojedynczy punkt reprezentuje obserwację.

  • Bardzo przydatne do eksploracyjnej analizy danych.

    • Czy te zmienne są dodatnio czy ujemnie skorelowane?

Wykres rozrzutu jest wykresem dwuwymiarowym, tj. wyświetla co najmniej dwie zmienne.

Wykresy rozrzutu z matplotlib

Możemy utworzyć scatterplot używając plt.scatter(x, y), gdzie x i y to dwie zmienne, które chcemy wizualizować.

<Figure size 640x480 with 1 Axes>

Sprawdź się

Czy te zmienne są ze sobą powiązane? Jeśli tak, to w jaki sposób?

<Figure size 640x480 with 1 Axes>

Sprawdź się

Czy te zmienne są ze sobą powiązane? Jeśli tak, to w jaki sposób?

<Figure size 640x480 with 1 Axes>

Wykrywanie zależności nieliniowych

<Figure size 640x480 with 1 Axes>

Sprawdź się

Jak moglibyśmy zwizualizować związek między Attack i Speed w naszym zbiorze danych Pokemonów?

Wykresy rozrzutu z pyplot express

Wykresy bąbelkowe

Wykresy punktowe z okrągłymi znacznikami o zmiennym rozmiarze są często nazywane wykresami bąbelkowymi. Należy pamiętać, że dane dotyczące koloru i rozmiaru są dodawane do informacji o najechaniu kursorem. Można dodać inne kolumny do danych najechania kursorem za pomocą argumentu hover_data w px.scatter.

Loading...

Kolor może być ciągły, jak poniżej, lub dyskretny/kategorialny, jak powyżej.

Loading...

Argument symbolu może być również mapowany na kolumnę. Dostępna jest szeroka gama symboli.

Loading...

Grupowane wykresy rozrzutu

Wykresy rozrzutu wspierają grupowanie - tzw. faceting.

Loading...

Dodawanie linii

Na wykres rozrzutu nałozyć mozna oszacowaną funkcję liniową:

Loading...

Wykresy słupkowe

Czym jest barplot?

Wykres słupkowy wizualizuje związek pomiędzy jedną zmienną ciągłą a zmienną kategorialną.

  • Wysokość każdego słupka zazwyczaj wskazuje średnią zmiennej ciągłej.

  • Każdy słupek reprezentuje inny poziom zmiennej kategorialnej.

Wykres słupkowy jest wykresem dwuwymiarowym, tj. wyświetla co najmniej dwie zmienne.

Wykresy słupkowe z matplotlib

plt.bar może być użyty do stworzenia wykresu słupkowego naszych danych.

  • Na przykład, średni Attack według Legendarnego statusu.

  • Jednak najpierw musimy użyć groupby, aby obliczyć średnią Attack na poziom.

Krok 1: Wykorzystanie groupby

Loading...
Loading...

Krok 2: Przekazanie wartości na plt.bar

Sprawdź się:

  • Czego dowiadujemy się z tego wykresu?

  • Czego brakuje w tej opowieści?

<Figure size 640x480 with 1 Axes>

Plotly express

Plotly Express to łatwy w użyciu, wysokopoziomowy interfejs do Plotly, który działa na różnych typach danych i tworzy łatwe do stylizacji wykresy.

Dzięki px.bar każdy wiersz ramki DataFrame jest reprezentowany jako prostokątny znak. Aby zagregować wiele punktów danych w ten sam prostokątny znak, należy zapoznać się z dokumentacją histogramu.

W poniższym przykładzie jest tylko jeden wiersz danych na rok, więc wyświetlany jest jeden słupek na rok.

Loading...

Wykresy słupkowe z danymi w formacie long

Dane w długim formacie mają jeden wiersz na obserwację i jedną kolumnę na zmienną. Jest to odpowiednie do przechowywania i wyświetlania danych wielowymiarowych, tj. o wymiarze większym niż 2. Format ten jest czasami nazywany „uporządkowanym”.

Aby dowiedzieć się więcej o tym, jak dostarczyć konkretną formę danych zorientowanych na kolumny do funkcji 2D-Cartesian Plotly Express, takich jak px.bar, zobacz dokumentację Plotly Express Wide-Form Support in Python.

Loading...

Podejrzyjmy dane:

Loading...

Wykresy słupkowe z danymi w formacie wide

Dane w szerokim formacie mają jeden wiersz na wartość jednej z pierwszych zmiennych i jedną kolumnę na wartość drugiej zmiennej.

Jest to odpowiednie do przechowywania i wyświetlania danych dwuwymiarowych.

Loading...

Zobaczmy jak wyglądają dane w formacie wide:

Loading...

Kolorowane słupki

Wykres słupkowy można dostosować za pomocą argumentów słów kluczowych, na przykład w celu użycia koloru ciągłego, jak poniżej, lub koloru dyskretnego, jak powyżej.

Loading...
Loading...

Stos vs grupowane słupki

Gdy kilka wierszy ma tę samą wartość x (tutaj Kobieta lub Mężczyzna), prostokąty są domyślnie ułożone jeden na drugim.

Loading...

Domyślne zachowanie skumulowanego wykresu słupkowego można zmienić na zgrupowane (znane również jako klastrowane) za pomocą argumentu barmode:

Loading...

Grupowanie wykresów słupkowych

Użycie argumentów słowa kluczowego facet_row (lub facet_col), utworzy nam grupowane subploty, w których różne wiersze (lub kolumny) odpowiadają różnym wartościom kolumny ramki danych określonej w facet_row.

Loading...