|
2 weeks ago | |
---|---|---|
.. | ||
solution | 3 weeks ago | |
README.md | 2 weeks ago | |
assignment.md | 4 weeks ago | |
notebook.ipynb | 3 weeks ago |
README.md
Vizualizácia proporcií
![]() |
---|
Vizualizácia proporcií - Sketchnote od @nitya |
V tejto lekcii použijete dataset zameraný na prírodu na vizualizáciu proporcií, napríklad koľko rôznych druhov húb sa nachádza v danom datasete o hubách. Preskúmajme tieto fascinujúce huby pomocou datasetu od Audubon, ktorý obsahuje podrobnosti o 23 druhoch húb s lupeňmi z rodov Agaricus a Lepiota. Budete experimentovať s chutnými vizualizáciami, ako sú:
- Koláčové grafy 🥧
- Donutové grafy 🍩
- Waflové grafy 🧇
💡 Veľmi zaujímavý projekt s názvom Charticulator od Microsoft Research ponúka bezplatné rozhranie na vizualizáciu dát pomocou drag and drop. V jednom z ich tutoriálov používajú aj tento dataset o hubách! Takže môžete preskúmať dáta a zároveň sa naučiť pracovať s knižnicou: Charticulator tutoriál.
Kvíz pred prednáškou
Spoznajte svoje huby 🍄
Huby sú veľmi zaujímavé. Importujme dataset na ich štúdium:
import pandas as pd
import matplotlib.pyplot as plt
mushrooms = pd.read_csv('../../data/mushrooms.csv')
mushrooms.head()
Vytlačí sa tabuľka s výbornými dátami na analýzu:
trieda | tvar klobúka | povrch klobúka | farba klobúka | modriny | vôňa | pripojenie lupeňov | rozostup lupeňov | veľkosť lupeňov | farba lupeňov | tvar stonky | koreň stonky | povrch stonky nad prsteňom | povrch stonky pod prsteňom | farba stonky nad prsteňom | farba stonky pod prsteňom | typ závoja | farba závoja | počet prsteňov | typ prsteňa | farba výtrusov | populácia | biotop |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Jedovaté | Konvexné | Hladké | Hnedé | Modriny | Štipľavá | Voľné | Tesné | Úzke | Čierne | Rozširujúce | Rovné | Hladké | Hladké | Biele | Biele | Čiastočné | Biele | Jeden | Závesné | Čierne | Roztrúsené | Mestské |
Jedlé | Konvexné | Hladké | Žlté | Modriny | Mandľová | Voľné | Tesné | Široké | Čierne | Rozširujúce | Kyjakovité | Hladké | Hladké | Biele | Biele | Čiastočné | Biele | Jeden | Závesné | Hnedé | Početné | Trávnaté |
Jedlé | Zvoncovité | Hladké | Biele | Modriny | Anízová | Voľné | Tesné | Široké | Hnedé | Rozširujúce | Kyjakovité | Hladké | Hladké | Biele | Biele | Čiastočné | Biele | Jeden | Závesné | Hnedé | Početné | Lúky |
Jedovaté | Konvexné | Šupinaté | Biele | Modriny | Štipľavá | Voľné | Tesné | Úzke | Hnedé | Rozširujúce | Rovné | Hladké | Hladké | Biele | Biele | Čiastočné | Biele | Jeden | Závesné | Čierne | Roztrúsené | Mestské |
Hneď si všimnete, že všetky dáta sú textové. Budete musieť tieto dáta konvertovať, aby ste ich mohli použiť v grafe. Väčšina dát je reprezentovaná ako 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')
Vezmite tieto dáta a konvertujte stĺpec 'trieda' na kategóriu:
cols = mushrooms.select_dtypes(["object"]).columns
mushrooms[cols] = mushrooms[cols].astype('category')
edibleclass=mushrooms.groupby(['class']).count()
edibleclass
Teraz, keď vytlačíte dáta o hubách, môžete vidieť, že boli rozdelené do kategórií podľa triedy jedovaté/jedlé:
tvar klobúka | povrch klobúka | farba klobúka | modriny | vôňa | pripojenie lupeňov | rozostup lupeňov | veľkosť lupeňov | farba lupeňov | tvar stonky | ... | povrch stonky pod prsteňom | farba stonky nad prsteňom | farba stonky pod prsteňom | typ závoja | farba závoja | počet prsteňov | typ prsteňa | farba výtrusov | populácia | biotop | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
trieda | |||||||||||||||||||||
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 |
Ak budete postupovať podľa poradia uvedeného v tejto tabuľke na vytvorenie kategórií triedy, môžete vytvoriť 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úci proporcie týchto dát podľa dvoch tried húb. Je veľmi dôležité správne nastaviť poradie štítkov, najmä tu, takže si overte poradie, v akom je pole štítkov vytvorené!
Donuty!
Trochu vizuálne zaujímavejší koláčový graf je donutový graf, čo je koláčový graf s dierou uprostred. Pozrime sa na naše dáta pomocou tejto metódy.
Pozrite sa na rôzne biotopy, kde rastú huby:
habitat=mushrooms.groupby(['habitat']).count()
habitat
Tu zoskupujete svoje dáta podľa biotopu. Je ich uvedených 7, takže ich použite ako štítky pre váš 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()
Tento kód nakreslí graf a stredový kruh, potom pridá tento stredový kruh do grafu. Upraviť šírku stredového kruhu môžete zmenou hodnoty 0.40
na inú hodnotu.
Donutové grafy je možné upraviť rôznymi spôsobmi, aby sa zmenili štítky. Štítky môžu byť zvýraznené pre lepšiu čitateľnosť. Viac sa dozviete v dokumentácii.
Teraz, keď viete, ako zoskupiť svoje dáta a potom ich zobraziť ako koláč alebo donut, môžete preskúmať iné typy grafov. Skúste waflový graf, ktorý je len iným spôsobom skúmania množstva.
Wafle!
Waflový graf je iný spôsob vizualizácie množstiev ako 2D pole štvorcov. Skúste vizualizovať rôzne množstvá farieb klobúkov húb v tomto datasete. Na to potrebujete nainštalovať pomocnú knižnicu s názvom PyWaffle a použiť Matplotlib:
pip install pywaffle
Vyberte segment svojich dát na zoskupenie:
capcolor=mushrooms.groupby(['cap-color']).count()
capcolor
Vytvorte waflový graf vytvorením štítkov a následným zoskupením svojich dát:
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"],
)
Pomocou waflového grafu môžete jasne vidieť proporcie farieb klobúkov v tomto datasete húb. Zaujímavé je, že existuje veľa húb so zelenými klobúkmi!
✅ PyWaffle podporuje ikony v grafoch, ktoré používajú akúkoľvek ikonu dostupnú v Font Awesome. Urobte experimenty na vytvorenie ešte zaujímavejšieho waflového grafu pomocou ikon namiesto štvorcov.
V tejto lekcii ste sa naučili tri spôsoby vizualizácie proporcií. Najprv musíte zoskupiť svoje dáta do kategórií a potom rozhodnúť, ktorý spôsob zobrazenia dát je najlepší - koláč, donut alebo wafle. Všetky sú chutné a poskytujú používateľovi okamžitý prehľad o datasete.
🚀 Výzva
Skúste znovu vytvoriť tieto chutné grafy v Charticulator.
Kvíz po prednáške
Prehľad a samostatné štúdium
Niekedy nie je zrejmé, kedy použiť koláčový, donutový alebo waflový graf. Tu sú niektoré články na túto tému:
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
Urobte si výskum, aby ste našli viac informácií o tomto náročnom rozhodnutí.
Zadanie
Upozornenie:
Tento dokument bol preložený pomocou služby AI prekladu Co-op Translator. Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Pôvodný dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu.