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

Arányok vizualizálása

 Sketchnote by (@sketchthedocs)
Arányok vizualizálása - Sketchnote by @nitya

Ebben a leckében egy természetközpontú adatállományt fogsz használni, hogy vizualizáld az arányokat, például azt, hogy hány különböző gombafaj található egy adott adatállományban a gombákról. Fedezzük fel ezeket a lenyűgöző gombákat egy Audubon által összeállított adatállomány segítségével, amely 23 lemezes gombafaj részleteit tartalmazza az Agaricus és Lepiota családokból. Kísérletezni fogsz ínycsiklandó vizualizációkkal, mint például:

  • Torta diagramok 🥧
  • Fánk diagramok 🍩
  • Waffle diagramok 🧇

💡 A Microsoft Research által létrehozott Charticulator nevű projekt egy ingyenes drag-and-drop felületet kínál adatvizualizációkhoz. Az egyik oktatóanyagukban szintén ezt a gomba adatállományt használják! Így egyszerre fedezheted fel az adatokat és tanulhatod meg a könyvtár használatát: Charticulator oktatóanyag.

Előadás előtti kvíz

Ismerd meg a gombáidat 🍄

A gombák nagyon érdekesek. Importáljunk egy adatállományt, hogy tanulmányozzuk őket:

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

Egy táblázat jelenik meg, amely remek elemzési adatokat tartalmaz:

osztály kalap-alak kalap-felület kalap-szín zúzódások illat lemez-csatlakozás lemez-távolság lemez-méret lemez-szín szár-alak szár-gyökér szár-felület-gyűrű-felett szár-felület-gyűrű-alatt szár-szín-gyűrű-felett szár-szín-gyűrű-alatt fátyol-típus fátyol-szín gyűrű-szám gyűrű-típus spóra-nyomat-szín populáció élőhely
Mérgező Domború Sima Barna Zúzódik Szúrós Szabad Szoros Keskeny Fekete Táguló Egyenlő Sima Sima Fehér Fehér Részleges Fehér Egy Függőleges Fekete Szórványos Városi
Ehető Domború Sima Sárga Zúzódik Mandula Szabad Szoros Széles Fekete Táguló Klub Sima Sima Fehér Fehér Részleges Fehér Egy Függőleges Barna Számos Füves
Ehető Harang Sima Fehér Zúzódik Ánizs Szabad Szoros Széles Barna Táguló Klub Sima Sima Fehér Fehér Részleges Fehér Egy Függőleges Barna Számos Mezők
Mérgező Domború Pikkelyes Fehér Zúzódik Szúrós Szabad Szoros Keskeny Barna Táguló Egyenlő Sima Sima Fehér Fehér Részleges Fehér Egy Függőleges Fekete Szórványos Városi

Rögtön észreveheted, hogy az összes adat szöveges. Az adatokat át kell alakítanod, hogy diagramon használhatóak legyenek. Valójában az adatok többsége objektumként van ábrázolva:

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

Az eredmény:

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

Konvertáld az 'osztály' oszlopot kategóriává:

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

Most, ha kinyomtatod a gomba adatokat, láthatod, hogy azokat kategóriákba csoportosították a mérgező/ehető osztály szerint:

kalap-alak kalap-felület kalap-szín zúzódások illat lemez-csatlakozás lemez-távolság lemez-méret lemez-szín szár-alak ... szár-felület-gyűrű-alatt szár-szín-gyűrű-felett szár-szín-gyűrű-alatt fátyol-típus fátyol-szín gyűrű-szám gyűrű-típus spóra-nyomat-szín populáció élőhely
osztály
Ehető 4208 4208 4208 4208 4208 4208 4208 4208 4208 4208 ... 4208 4208 4208 4208 4208 4208 4208 4208 4208 4208
Mérgező 3916 3916 3916 3916 3916 3916 3916 3916 3916 3916 ... 3916 3916 3916 3916 3916 3916 3916 3916 3916 3916

Ha követed a táblázatban bemutatott sorrendet az osztály kategória címkék létrehozásához, készíthetsz egy torta diagramot:

Torta!

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

Voilá, egy torta diagram, amely megmutatja az adatok arányait a gombák két osztálya szerint. Nagyon fontos, hogy a címkék sorrendje helyes legyen, különösen itt, ezért ellenőrizd a címke tömb létrehozásának sorrendjét!

torta diagram

Fánkok!

Egy vizuálisan érdekesebb torta diagram a fánk diagram, amely egy lyukkal rendelkező torta diagram. Nézzük meg az adatainkat ezzel a módszerrel.

Nézd meg a különböző élőhelyeket, ahol a gombák nőnek:

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

Itt az adatokat élőhely szerint csoportosítod. Hét élőhely van felsorolva, ezeket használd címkékként a fánk diagramhoz:

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

fánk diagram

Ez a kód egy diagramot és egy középső kört rajzol, majd hozzáadja azt a diagramhoz. A középső kör szélességét a 0.40 érték megváltoztatásával módosíthatod.

A fánk diagramok többféleképpen is testreszabhatók, például a címkék olvashatóságának kiemelésével. További információt a dokumentációban találsz.

Most, hogy tudod, hogyan csoportosítsd az adatokat és jelenítsd meg őket torta vagy fánk formájában, felfedezhetsz más típusú diagramokat. Próbálj ki egy waffle diagramot, amely egy másik módja a mennyiségek vizualizálásának.

Waffle!

A 'waffle' típusú diagram egy másik módja a mennyiségek vizualizálásának egy 2D négyzetes tömb formájában. Próbáld meg vizualizálni a gombakalap színek különböző mennyiségeit ebben az adatállományban. Ehhez telepítened kell egy segédkönyvtárat, a PyWaffle nevűt, és használnod kell a Matplotlib-et:

pip install pywaffle

Válassz ki egy adat szegmenst a csoportosításhoz:

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

Hozz létre egy waffle diagramot címkék létrehozásával, majd csoportosítsd az adatokat:

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

A waffle diagram segítségével egyértelműen láthatod a gombakalap színek arányait ebben az adatállományban. Érdekes módon sok zöld kalapú gomba van!

waffle diagram

A PyWaffle támogatja az ikonokat a diagramokon belül, amelyek bármelyik Font Awesome ikon használatát lehetővé teszik. Kísérletezz, hogy még érdekesebb waffle diagramot készíts ikonok helyett négyzetekkel.

Ebben a leckében három módot tanultál meg az arányok vizualizálására. Először csoportosítanod kell az adatokat kategóriákba, majd eldönteni, hogy melyik a legjobb mód az adatok megjelenítésére - torta, fánk vagy waffle. Mindegyik ínycsiklandó és azonnali pillanatképet nyújt az adatállományról.

🚀 Kihívás

Próbáld meg újra létrehozni ezeket az ínycsiklandó diagramokat a Charticulator segítségével.

Előadás utáni kvíz

Áttekintés és önálló tanulás

Néha nem egyértelmű, hogy mikor használjunk torta, fánk vagy waffle diagramot. Íme néhány cikk, amit elolvashatsz a témában:

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

Végezz kutatást, hogy további információkat találj erről a nehéz döntésről.

Feladat

Próbáld ki Excelben


Felelősségkizárás:
Ez a dokumentum az Co-op Translator AI fordítási szolgáltatás segítségével készült. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti dokumentum az eredeti nyelvén tekintendő hiteles forrásnak. Kritikus információk esetén javasolt a professzionális, emberi fordítás igénybevétele. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy téves értelmezésekért.