You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

13 KiB

Wizualizacja proporcji

 Sketchnote autorstwa (@sketchthedocs)
Wizualizacja proporcji - Sketchnote autorstwa @nitya

W tej lekcji użyjesz innego zestawu danych skoncentrowanego na naturze, aby zwizualizować proporcje, na przykład ile różnych rodzajów grzybów występuje w danym zestawie danych o pieczarkach. Zbadajmy te fascynujące grzyby, korzystając z zestawu danych pochodzącego z Audubon, zawierającego szczegóły dotyczące 23 gatunków grzybów blaszkowych z rodzin Agaricus i Lepiota. Będziesz eksperymentować z apetycznymi wizualizacjami, takimi jak:

  • Wykresy kołowe 🥧
  • Wykresy pierścieniowe 🍩
  • Wykresy gofrowe 🧇

💡 Bardzo interesujący projekt Charticulator od Microsoft Research oferuje darmowy interfejs typu "przeciągnij i upuść" do wizualizacji danych. W jednym z ich tutoriali również używają tego zestawu danych o grzybach! Możesz więc eksplorować dane i jednocześnie uczyć się biblioteki: Tutorial Charticulator.

Quiz przed lekcją

Poznaj swoje grzyby 🍄

Grzyby są bardzo interesujące. Zaimportujmy zestaw danych, aby je zbadać:

import pandas as pd
import matplotlib.pyplot as plt
mushrooms = pd.read_csv('../../data/mushrooms.csv')
mushrooms.head()

Tabela jest wyświetlana z ciekawymi danymi do analizy:

klasa kształt kapelusza powierzchnia kapelusza kolor kapelusza siniaki zapach przyczepność blaszek odstępy między blaszkami rozmiar blaszek kolor blaszek kształt trzonu korzeń trzonu powierzchnia trzonu nad pierścieniem powierzchnia trzonu pod pierścieniem kolor trzonu nad pierścieniem kolor trzonu pod pierścieniem typ osłony kolor osłony liczba pierścieni typ pierścienia kolor zarodników populacja siedlisko
Trujące Wypukły Gładka Brązowy Siniaki Ostry Wolne Bliskie Wąskie Czarny Powiększający Równy Gładka Gładka Biały Biały Częściowa Biały Jeden Wiszący Czarny Rozproszone Miejskie
Jadalne Wypukły Gładka Żółty Siniaki Migdałowy Wolne Bliskie Szerokie Czarny Powiększający Maczugowaty Gładka Gładka Biały Biały Częściowa Biały Jeden Wiszący Brązowy Liczne Trawy
Jadalne Dzwonkowaty Gładka Biały Siniaki Anyżowy Wolne Bliskie Szerokie Brązowy Powiększający Maczugowaty Gładka Gładka Biały Biały Częściowa Biały Jeden Wiszący Brązowy Liczne Łąki
Trujące Wypukły Łuskowata Biały Siniaki Ostry Wolne Bliskie Wąskie Brązowy Powiększający Równy Gładka Gładka Biały Biały Częściowa Biały Jeden Wiszący Czarny Rozproszone Miejskie

Od razu zauważasz, że wszystkie dane są tekstowe. Musisz je przekonwertować, aby móc użyć ich w wykresie. Większość danych jest reprezentowana jako obiekt:

print(mushrooms.select_dtypes(["object"]).columns)

Wynik to:

Index(['class', 'cap-shape', 'cap-surface', 'cap-color', 'bruises', 'odor',
       'gill-attachment', 'gill-spacing', 'gill-size', 'gill-color',
       'stalk-shape', 'stalk-root', 'stalk-surface-above-ring',
       'stalk-surface-below-ring', 'stalk-color-above-ring',
       'stalk-color-below-ring', 'veil-type', 'veil-color', 'ring-number',
       'ring-type', 'spore-print-color', 'population', 'habitat'],
      dtype='object')

Weź te dane i przekonwertuj kolumnę 'klasa' na kategorię:

cols = mushrooms.select_dtypes(["object"]).columns
mushrooms[cols] = mushrooms[cols].astype('category')
edibleclass=mushrooms.groupby(['class']).count()
edibleclass

Teraz, jeśli wyświetlisz dane o grzybach, zobaczysz, że zostały pogrupowane w kategorie według klasy trujące/jadalne:

kształt kapelusza powierzchnia kapelusza kolor kapelusza siniaki zapach przyczepność blaszek odstępy między blaszkami rozmiar blaszek kolor blaszek kształt trzonu ... powierzchnia trzonu pod pierścieniem kolor trzonu nad pierścieniem kolor trzonu pod pierścieniem typ osłony kolor osłony liczba pierścieni typ pierścienia kolor zarodników populacja siedlisko
klasa
Jadalne 4208 4208 4208 4208 4208 4208 4208 4208 4208 4208 ... 4208 4208 4208 4208 4208 4208 4208 4208 4208 4208
Trujące 3916 3916 3916 3916 3916 3916 3916 3916 3916 3916 ... 3916 3916 3916 3916 3916 3916 3916 3916 3916 3916

Jeśli podążysz za kolejnością przedstawioną w tej tabeli, aby stworzyć etykiety kategorii klasy, możesz zbudować wykres kołowy:

Koło!

labels=['Edible','Poisonous']
plt.pie(edibleclass['population'],labels=labels,autopct='%.1f %%')
plt.title('Edible?')
plt.show()

Voila, wykres kołowy pokazujący proporcje tych danych według dwóch klas grzybów. Ważne jest, aby poprawnie ustawić kolejność etykiet, szczególnie tutaj, więc upewnij się, że weryfikujesz kolejność, w jakiej budowana jest tablica etykiet!

wykres kołowy

Pierścienie!

Nieco bardziej interesującym wizualnie wykresem kołowym jest wykres pierścieniowy, czyli wykres kołowy z dziurą w środku. Spójrzmy na nasze dane za pomocą tej metody.

Przyjrzyj się różnym siedliskom, w których rosną grzyby:

habitat=mushrooms.groupby(['habitat']).count()
habitat

Tutaj grupujesz swoje dane według siedliska. Jest ich 7, więc użyj ich jako etykiet dla wykresu pierścieniowego:

labels=['Grasses','Leaves','Meadows','Paths','Urban','Waste','Wood']

plt.pie(habitat['class'], labels=labels,
        autopct='%1.1f%%', pctdistance=0.85)
  
center_circle = plt.Circle((0, 0), 0.40, fc='white')
fig = plt.gcf()

fig.gca().add_artist(center_circle)
  
plt.title('Mushroom Habitats')
  
plt.show()

wykres pierścieniowy

Ten kod rysuje wykres i środkowe koło, a następnie dodaje to środkowe koło do wykresu. Zmień szerokość środkowego koła, zmieniając wartość 0.40 na inną.

Wykresy pierścieniowe można dostosować na różne sposoby, aby zmienić etykiety. Etykiety w szczególności można wyróżnić dla lepszej czytelności. Dowiedz się więcej w dokumentacji.

Teraz, gdy wiesz, jak grupować dane i wyświetlać je jako koło lub pierścień, możesz eksplorować inne typy wykresów. Spróbuj wykresu gofrowego, który jest po prostu innym sposobem eksploracji ilości.

Gofry!

Wykres typu 'gofrowy' to inny sposób wizualizacji ilości jako 2D tablicy kwadratów. Spróbuj zwizualizować różne ilości kolorów kapeluszy grzybów w tym zestawie danych. Aby to zrobić, musisz zainstalować pomocniczą bibliotekę PyWaffle i użyć Matplotlib:

pip install pywaffle

Wybierz segment swoich danych do grupowania:

capcolor=mushrooms.groupby(['cap-color']).count()
capcolor

Stwórz wykres gofrowy, tworząc etykiety, a następnie grupując swoje dane:

import pandas as pd
import matplotlib.pyplot as plt
from pywaffle import Waffle
  
data ={'color': ['brown', 'buff', 'cinnamon', 'green', 'pink', 'purple', 'red', 'white', 'yellow'],
    'amount': capcolor['class']
     }
  
df = pd.DataFrame(data)
  
fig = plt.figure(
    FigureClass = Waffle,
    rows = 100,
    values = df.amount,
    labels = list(df.color),
    figsize = (30,30),
    colors=["brown", "tan", "maroon", "green", "pink", "purple", "red", "whitesmoke", "yellow"],
)

Korzystając z wykresu gofrowego, możesz wyraźnie zobaczyć proporcje kolorów kapeluszy w tym zestawie danych o grzybach. Co ciekawe, jest wiele grzybów z zielonymi kapeluszami!

wykres gofrowy

Pywaffle obsługuje ikony w wykresach, które wykorzystują dowolną ikonę dostępną w Font Awesome. Przeprowadź eksperymenty, aby stworzyć jeszcze bardziej interesujący wykres gofrowy, używając ikon zamiast kwadratów.

W tej lekcji nauczyłeś się trzech sposobów wizualizacji proporcji. Najpierw musisz pogrupować swoje dane w kategorie, a następnie zdecydować, który sposób ich wyświetlenia - koło, pierścień czy gofry - jest najlepszy. Wszystkie są apetyczne i dostarczają użytkownikowi natychmiastowego wglądu w zestaw danych.

🚀 Wyzwanie

Spróbuj odtworzyć te apetyczne wykresy w Charticulator.

Quiz po lekcji

Przegląd i samodzielna nauka

Czasami nie jest oczywiste, kiedy użyć wykresu kołowego, pierścieniowego czy gofrowego. Oto kilka artykułów do przeczytania na ten temat:

https://www.beautiful.ai/blog/battle-of-the-charts-pie-chart-vs-donut-chart

https://medium.com/@hypsypops/pie-chart-vs-donut-chart-showdown-in-the-ring-5d24fd86a9ce

https://www.mit.edu/~mbarker/formula1/f1help/11-ch-c6.htm

https://medium.datadriveninvestor.com/data-visualization-done-the-right-way-with-tableau-waffle-chart-fdf2a19be402

Przeprowadź badania, aby znaleźć więcej informacji na temat tej trudnej decyzji.

Zadanie

Spróbuj w Excelu


Zastrzeżenie:
Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI Co-op Translator. Chociaż dokładamy wszelkich starań, aby zapewnić poprawność tłumaczenia, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego języku źródłowym powinien być uznawany za wiarygodne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.