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.

12 KiB

Vizualizace poměrů

 Sketchnote od (@sketchthedocs)
Vizualizace poměrů - Sketchnote od @nitya

V této lekci použijete dataset zaměřený na přírodu k vizualizaci poměrů, například kolik různých druhů hub se nachází v daném datasetu o houbách. Pojďme prozkoumat tyto fascinující houby pomocí datasetu od Audubon, který obsahuje podrobnosti o 23 druzích lupenatých hub z rodů Agaricus a Lepiota. Budete experimentovat s chutnými vizualizacemi, jako jsou:

  • Koláčové grafy 🥧
  • Donutové grafy 🍩
  • Waflové grafy 🧇

💡 Velmi zajímavý projekt od Microsoft Research nazvaný Charticulator nabízí bezplatné rozhraní pro vizualizaci dat pomocí drag and drop. V jednom z jejich tutoriálů také používají tento dataset o houbách! Můžete tedy prozkoumat data a zároveň se naučit používat tuto knihovnu: Charticulator tutorial.

Kvíz před lekcí

Poznejte své houby 🍄

Houby jsou velmi zajímavé. Importujme dataset, abychom je mohli studovat:

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

Tabulka se vytiskne s některými skvělými daty pro analýzu:

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
Jedovaté Konvexní Hladký Hnědý Modřiny Štiplavý Volný Těsný Úzký Černý Rozšiřující Rovný Hladký Hladký Bílý Bílý Částečný Bílý Jeden Visící Černý Rozptýlený Městský
Jedlé Konvexní Hladký Žlutý Modřiny Mandlový Volný Těsný Široký Černý Rozšiřující Klubový Hladký Hladký Bílý Bílý Částečný Bílý Jeden Visící Hnědý Početný Trávy
Jedlé Zvoncový Hladký Bílý Modřiny Anýzový Volný Těsný Široký Hnědý Rozšiřující Klubový Hladký Hladký Bílý Bílý Částečný Bílý Jeden Visící Hnědý Početný Louky
Jedovaté Konvexní Šupinatý Bílý Modřiny Štiplavý Volný Těsný Úzký Hnědý Rozšiřující Rovný Hladký Hladký Bílý Bílý Částečný Bílý Jeden Visící Černý Rozptýlený Městský

Hned si všimnete, že všechna data jsou textová. Budete je muset převést, abyste je mohli použít v grafu. Většina dat je ve skutečnosti reprezentována jako objekt:

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

Výstup je:

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')

Převeďte tato data a sloupec 'class' na kategorii:

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

Nyní, pokud vytisknete data o houbách, uvidíte, že byla rozdělena do kategorií podle jedovaté/jedlé třídy:

cap-shape cap-surface cap-color bruises odor gill-attachment gill-spacing gill-size gill-color stalk-shape ... 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
class
Jedlé 4208 4208 4208 4208 4208 4208 4208 4208 4208 4208 ... 4208 4208 4208 4208 4208 4208 4208 4208 4208 4208
Jedovaté 3916 3916 3916 3916 3916 3916 3916 3916 3916 3916 ... 3916 3916 3916 3916 3916 3916 3916 3916 3916 3916

Pokud budete postupovat podle pořadí uvedeného v této tabulce při vytváření štítků kategorií třídy, můžete vytvořit koláčový graf:

Koláč!

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

Voila, koláčový graf zobrazující poměry těchto dat podle těchto dvou tříd hub. Je velmi důležité získat pořadí štítků správně, zejména zde, takže si ověřte pořadí, ve kterém je pole štítků vytvořeno!

koláčový graf

Donuty!

Poněkud vizuálně zajímavější koláčový graf je donutový graf, což je koláčový graf s dírou uprostřed. Podívejme se na naše data pomocí této metody.

Podívejte se na různá stanoviště, kde houby rostou:

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

Zde seskupujete svá data podle stanoviště. Je jich uvedeno 7, takže je použijte jako štítky pro svůj donutový graf:

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()

donutový graf

Tento kód vykreslí graf a středový kruh, poté přidá tento středový kruh do grafu. Upravte šířku středového kruhu změnou hodnoty 0.40 na jinou.

Donutové grafy lze upravit několika způsoby, aby se změnily štítky. Štítky lze zejména zvýraznit pro lepší čitelnost. Více se dozvíte v dokumentaci.

Nyní, když víte, jak seskupit svá data a poté je zobrazit jako koláč nebo donut, můžete prozkoumat jiné typy grafů. Vyzkoušejte waflový graf, což je jen jiný způsob zkoumání množství.

Wafle!

Graf typu 'waffle' je jiný způsob vizualizace množství jako 2D pole čtverců. Zkuste vizualizovat různé množství barev klobouků hub v tomto datasetu. K tomu potřebujete nainstalovat pomocnou knihovnu nazvanou PyWaffle a použít Matplotlib:

pip install pywaffle

Vyberte segment svých dat pro seskupení:

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

Vytvořte waflový graf vytvořením štítků a poté seskupením svých dat:

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"],
)

Pomocí waflového grafu můžete jasně vidět poměry barev klobouků v tomto datasetu hub. Zajímavé je, že existuje mnoho hub se zelenými klobouky!

waflový graf

Pywaffle podporuje ikony v grafech, které používají jakoukoli ikonu dostupnou v Font Awesome. Udělejte několik experimentů a vytvořte ještě zajímavější waflový graf pomocí ikon místo čtverců.

V této lekci jste se naučili tři způsoby vizualizace poměrů. Nejprve musíte seskupit svá data do kategorií a poté rozhodnout, který způsob zobrazení dat je nejlepší - koláč, donut nebo wafle. Všechny jsou chutné a uživatele potěší okamžitým přehledem datasetu.

🚀 Výzva

Zkuste znovu vytvořit tyto chutné grafy v Charticulator.

Kvíz po lekci

Přehled & Samostudium

Někdy není zřejmé, kdy použít koláčový, donutový nebo waflový graf. Zde je několik článků, které si můžete přečíst na toto téma:

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

Proveďte výzkum a najděte více informací o tomto nelehkém rozhodnutí.

Úkol

Vyzkoušejte to v Excelu


Prohlášení:
Tento dokument byl přeložen pomocí služby AI pro překlady Co-op Translator. Ačkoli se snažíme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Původní dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro důležité informace se doporučuje profesionální lidský překlad. Neodpovídáme za žádná nedorozumění nebo nesprávné interpretace vzniklé v důsledku použití tohoto překladu.