Photo by oxana v on Unsplash
Az útmutatót néhány részletesebb példával frissítettük. A blog legfrissebb változatát itt találod.
Ha most kezdesz el foglalkozni a Python vizualizációval, lehet, hogy eláraszt a könyvtárak és példák száma:
- Matplotlib
- Seaborn
- Plotly
- Bokeh
- Altair
- Folium
Ha van egy vizualizálásra váró DataFrame, melyiket válasszuk? Egyes könyvtárak bizonyos esetekben jobbak lehetnek, mint a többiek. Ez a cikk bemutatja az egyes könyvtárak előnyeit és hátrányait. A cikk végére meg kell tudnia különböztetni az egyes könyvtárak különböző tulajdonságait, és könnyebben ki tudja választani az optimálisat.
Ezt egy mintaadatkészlet segítségével fogjuk megtenni, és az egyes könyvtárak segítségével vizsgáljuk meg, néhány konkrét tulajdonságra összpontosítva:
Interaktivitás
A vizualizációja interaktív legyen?
Egyik könyvtár, mint például a Matplotlib, képként jeleníti meg a vizualizációt; így jól használhatóak fogalmak magyarázatára (egy tanulmányban, diaképben vagy prezentációban).
A másik oldalon az olyan könyvtárak, mint az Altair, a Bokeh és a Plotly lehetővé teszik, hogy interaktív grafikonokat hozzon létre, amelyekbe a felhasználók maguk is belemerülhetnek és felfedezhetik
Szintaxis és rugalmasság
Miben különbözik az egyes könyvtárak szintaxisa? Az alacsonyabb szintű könyvtárakkal, mint például a Matplotlib, bármit megtehetsz, amit csak elképzelhető, hogy szeretnél – de egy bonyolultabb API árán. Egyes könyvtárak, mint például az Altair, nagyon deklaratívak, ami megkönnyíti az adatok leképezését.
Adatok típusa és vizualizáció
Speciális felhasználási esettel dolgozik, például földrajzi ábrázolással, nagy adatokkal, vagy olyan ábrázolási típust használ, amelyet csak egy adott könyvtár támogat?
Adatok
Az összehasonlítás megkönnyítése érdekében ebben a cikkben a Githubról lekapart valós adatokat fogom használni:
Pár sor kóddal az összes felhasználó helyét szépen ábrázolhatjuk a térképen. A buborékok színe az elágazások számát, mérete pedig a csillagok teljes számát jelzi
Megközelítés: A Plotly kiválóan alkalmas interaktív és publikációs minőségű grafikonok készítésére néhány sornyi kóddal.
Altair
AzAltair egy deklaratív statisztikai vizualizációs könyvtár Pythonhoz, amely a vega-lite-on alapul, így ideális a sok statisztikai transzformációt igénylő grafikonokhoz.
Pros
1. Egyszerű vizualizációs nyelvtan
A vizualizáció létrehozásához használt nyelvtan könnyen érthető. Csak az adatoszlopok és a kódolási csatornák közötti kapcsolatokat kell megemlíteni, a többi ábrázolást pedig automatikusan kezeli. Ez absztraktnak hangzik, de nagy dolog, amikor adatokkal dolgozunk, és az információk vizualizálását igazán gyorsan és intuitív módon teszi lehetővé.
A fenti titáni adatokkal például szeretnénk megszámolni az egyes osztályokba tartozó emberek számát, ehhez csak annyit kell tennünk, hogy count()
az y_tengelyben
2. Az adatok egyszerű átalakítása
Az Altair azt is nagyon megkönnyíti, hogy a diagram készítése közben átalakítsuk az adatokat
Ha például szeretnénk megtalálni az egyes nemek átlagos életkorát a Titanicon, ahelyett, hogy a Plotlyhoz hasonlóan előre elvégeznénk az átalakítást, a kódon belül is elvégezhetjük a transzformációt a diagram készítése közben.
Azt is elérhetjük, hogy az osztály nominális adat legyen (kategorikus adat, rendezés nélkül). a :N
használatával, vagy meggyőződhetünk róla, hogy a mean_age mennyiségi adat (értékek mérőszámai, például számok) a :Q
Az adattranszformációk teljes listáját itt
3. Az ábrák egyszerű összekapcsolása
Az Altair lehetővé teszi néhány lenyűgöző összekapcsolást is az ábrák között, például intervallum-kiválasztással szűrheti egy csatolt hisztogram tartalmát.
Ha például azt szeretnénk megjeleníteni, hogy az egyes osztályokba tartozók száma az életkor és a viteldíj között kijelölt intervallumon belül hányan vannak, akkor valami ilyesmit tehetünk.
Amint az egeret húzva kiválasztjuk az intervallumot a szórásdiagramon belül, az alábbi oszlopdiagramon láthatjuk a változást. A korábban említett transzformációkkal és számításokkal kombinálva ez azt jelenti, hogy rendkívül interaktív ábrákat hozhatunk létre, amelyek menet közbeni számításokat végeznek – anélkül, hogy egy futó Python-kiszolgálóra lenne szükség!
Hátrányok
Hacsak nem adunk meg egyéni stilizálást, az egyszerű ábrák, például az oszlopdiagram, nem néznek ki olyan stílusosan, mint a seaborn vagy a Plotly. Az Altair emellett nem ajánlja az 5000 minta feletti adatkészleteket, és ehelyett azt javasolja, hogy vizualizálás előtt aggregálja az adatokat.
Takeaway: Az Altair ideális a statisztikák megjelenítésére szolgáló kifinomult grafikonokhoz. Az Altair nem tudja kezelni az 5000 minta feletti adatokat, és néhány egyszerű diagram nem néz ki olyan stílusosan a Plotlyhoz vagy a Seabornhoz képest.
Bokeh
A Bokeh egy rugalmas interaktív vizualizációs könyvtár, amely a webböngészőket célozza meg a megjelenítéshez.
Pros
- A Matplotlib interaktív változata
Ha a fenti interaktív vizualizációs könyvtárak között rangsorolunk, a Bokeh valószínűleg a Matplotlibhez való hasonlóság tekintetében az első helyen fog állni.
A Matplotlib bármilyen plotot képes létrehozni, mivel ez egy alacsony szintű vizualizációs könyvtár. A Bokeh egyaránt használható magas és alacsony szintű interfészként; így sok olyan kifinomult plotot tud létrehozni, mint a Matplotlib, de kevesebb kódsorral és nagyobb felbontással.
Például, a Matplotlib
Circle plotját is létre lehetne hozni. jobb felbontással és több hasznossággal a Bokeh
2. Link a telkek között
A Bokeh a telkek közötti linkelést is nagyon megkönnyíti. Az egyik plotban alkalmazott változtatás egy másik, hasonló változóval rendelkező plotban is érvényesül.
Ha például 3 grafikont készítünk egymás mellé, és meg akarjuk figyelni a kapcsolatukat, használhatjuk az összekapcsolt ecsetelést
ColumnDataSource
lehetővé teszi az adatok megosztását a plotok között. Így amikor az egyik plotra alkalmazzuk a módosítást, a többi plot is ennek megfelelően változik.
Hátrányok
Mivel a Bokeh egy olyan könyvtár, amely valamennyire középszintű interfésszel rendelkezik, gyakran kevesebb kódot igényel, mint a Matplotlib, de több kódot igényel ugyanazon plot előállításához, mint a Seaborn, Altair vagy Plotly.
Például ugyanannak a számlálási plotnak a létrehozásához titáni adatok felhasználásával, amellett, hogy az adatokat előzetesen transzformálni kell, be kell állítanunk a sáv szélességét és a színt is, ha azt szeretnénk, hogy a grafikon szépen nézzen ki
Ha nem adnánk hozzá szélességet a sávdiagramhoz, a grafikon így nézne ki
Így, manuálisan kell beállítanunk a méreteket, hogy szebb legyen a grafikon
Ha kevesebb kóddal szeretnénk szép oszlopdiagramot készíteni, akkor ez lehet a Bokeh hátránya más könyvtárakkal szemben
Megoldás: A Bokeh az egyetlen olyan könyvtár, amelynek felülete az alacsonytól a magasig terjed, ami megkönnyíti a sokoldalú és elegáns grafikák készítését. Ennek azonban az az ára, hogy a Bokeh-nek általában több kódra van szüksége ahhoz, hogy a többi könyvtárhoz hasonló minőségű ábrákat hozzon létre.
Folium
A Folium megkönnyíti az adatok interaktív szórólapos térképen való megjelenítését. A könyvtár számos beépített csempekészlettel rendelkezik az OpenStreetMap, a Mapbox és a Stamen
Pros
- Egyszerű térképet készíteni markerekkel
Még ha Plotly, Altair, és a Bokeh is lehetővé teszi számunkra a térképek létrehozását, a Folium egy nyílt utcai térképet használ, hogy a Google térképhez közelebbi érzést adjon minimális kóddal
Emlékszel, hogyan készítettük el a térképet a Github felhasználók helyének vizualizálására a Plotly segítségével? A Folium segítségével még szebbé tehetjük a térképet
A kezdeti helyszín Brooklyn, NY. Nagyítsa ki a térképen a többi helyszín megtekintéséhez. Néhány sornyi kóddal létrehoztunk egy valódi térképet, amely a felhasználók helyeit mutatja.
2. Potenciális hely hozzáadása
Ha más felhasználók potenciális helyeit szeretnénk hozzáadni, a Folium megkönnyíti ezt azzal, hogy lehetővé teszi a felhasználók számára a jelölések hozzáadását
Kattintsunk a térképen, és egy új hely generálódik ott, ahol kattintunk.
3. Pluginok
A Folium számos plugint tartalmaz, amelyeket használhatsz a térképedhez – többek között az Altair pluginját is. Mi van akkor, ha a világ összes Github-felhasználójának összes csillagának hőtérképét szeretnénk megnézni, hogy azonosítsuk, hol van nagyszámú top Github-felhasználó az összes csillag magas számával? A Folium pluginok hőtérképével pontosan ezt teheti meg.
Zoom out to see the complete picture of the heatmap.
Takeaway: A Folium lehetővé teszi, hogy néhány sornyi kóddal interaktív térképet hozzon létre. Közel olyan élményt nyújt, mint egy Google térkép.
Következtetés
Gratulálunk! Az imént megismerkedett hat különböző vizualizációs eszközzel. Remélem, ebből a cikkből megtudhatod, hogy az egyes könyvtárak mit tudnak, és mikor mit érdemes használni. Ha megragadod az egyes könyvtárak legfontosabb jellemzőit, gyorsabban tudod majd elővenni a megfelelő könyvtárat, amikor szükséged van rá.
Ha még mindig nem tudod, hogy melyik könyvtárat használd az adataidhoz, csak válassz egyet, amit elég jónak találsz. Aztán ha a kód túl hosszú, vagy a grafikon nem olyan jó, mint amilyennek elképzelted, csak próbáld ki egy másik könyvtárral!
Nyugodtan forkold és játssz a cikk kódjával ebben a Github repóban.
szeretek alapvető adattudományi fogalmakról írni, és játszani különböző algoritmusokkal és adattudományi eszközökkel. Kapcsolatba léphetsz velem a LinkedInen és a Twitteren.
Starold meg ezt a repót, ha meg akarod nézni az összes általam írt cikk kódját. Kövess engem a Mediumon, hogy tájékozott maradj a legújabb adattudományi cikkeimről, mint például ezek: