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:

Az egyes könyvtárak vizualizációit a Datapane segítségével fogom beágyazni, ami egy Python keretrendszer és API Python jelentések közzétételére és megosztására. Ha több valós példát szeretnél látni, nézd meg a Datapane galériában a felhasználók által készített jelentéseket.

A cikk követéséhez vagy letöltheted a csv fájlt innen, vagy közvetlenül a Datapane Blobból kapod meg az adatokat.

import datapane as dpdp.Blob.get(name='github_data', owner='khuyentran1401').download_df()

Ne feledd, hogy előzetesen bejelentkezz a Datapane-be a tokeneddel, ha a Blobot szeretnéd használni. Ennek kevesebb mint 1 percet kell igénybe vennie

Matplotlib

A Matplotlib valószínűleg a legelterjedtebb Python könyvtár adatok vizualizálására. Valószínűleg mindenki, akit érdekel az adattudomány, legalább egyszer már használta a Matplotlib-et.

Pros

  1. Egyszerű látni az adatok tulajdonságait

Az adatok elemzésekor ideális lehet, ha gyorsan megnézzük az eloszlást.

Ha például gyorsan meg akarom nézni a 100 legtöbb követővel rendelkező felhasználó eloszlását, általában elég a Matplotlib használata.

Még ha a Matplotlib x tengelye nem is néz ki jól, a grafikonra pillantva jobban megértjük az adatok eloszlását.

2. Bármit képes ábrázolni

A Matplotlib nagyon sokoldalú, ami azt jelenti, hogy bármilyen grafikont képes ábrázolni, amit csak el tudunk képzelni. A Matplotlib weboldala nagyon átfogó dokumentációt és különböző grafikonokat tartalmaz a galériában, ami megkönnyíti, hogy útmutatókat találjunk bármilyen őrült grafikonhoz, amit csak el tudunk képzelni.

Mint valami ilyen szöveg:

Hátrányok

A Matplotlib bármit képes ábrázolni, de bonyolult lehet a nem alapvető ábrák ábrázolása vagy az ábrák beállítása a szép megjelenéshez.

Még ha a plot elég jó is az eloszlás vizualizálásához, ha mások számára is szeretnénk ábrázolni az adatainkat, akkor az x-tengelyt, y-tengelyt ki kell javítanunk, ami sok erőfeszítést igényel. Ennek oka, hogy a Matplotlib rendkívül alacsony szintű interfésszel rendelkezik.

Takeaway: A Matplotlib bármit képes ábrázolni, de az összetett ábrák sokkal több kódot igényelhetnek, mint más könyvtárak

A Seaborn egy Python adatvizualizációs könyvtár, amely a Matplotlib-re épül. Egy magasabb szintű wrappert biztosít a könyvtáron, ami megkönnyíti a használatát.

Előnyei

  1. Kisebb kód

Egy magasabb szintű felületet biztosít a hasonló plotokhoz. Más szóval, a seaborn általában hasonló plotokat biztosít, mint a matplotlib, de kevesebb kóddal és szebb kialakítással.

Az eddigiekkel megegyező adatokkal hasonló heatmapet rajzolunk a grafikonról.

Jobb heatmapet kapunk az x és y címke beállítása nélkül!

Szebbé tesszük a gyakran használt ábrákat

Nem csak azért választják sokan a seabornt, ha olyan népszerű ábrákról van szó, mint a bar plot, box plot, count plot, hisztogramok stb. mert kevesebb kóddal is elkészíthetők, de sokkal szebbek is. Ahogy a fenti példánkban is láthatjuk, a színek is jobban néznek ki, mint a Matplotlib alapértelmezettjei.

Hátrányok

A seaborn korlátozottabb és nem rendelkezik olyan széles kollekcióval, mint a matplotlib

Takeaway: A Seaborn a Matplotlib egy magasabb szintű változata. Annak ellenére, hogy nem rendelkezik olyan széles gyűjteménnyel, mint a Matplotlib, a seaborn kevesebb kóddal csinosítja a népszerű ábrákat, mint például a bar plot, box plot, heatmap, stb.

Plotly

A Plotly Python grafikus könyvtára megkönnyíti az interaktív, publikációs minőségű grafikonok készítését. A Matplotlibhez és a seabornhoz hasonló grafikonokat is képes létrehozni, például vonaldiagramokat, szórásdiagramokat, területi diagramokat, oszlopdiagramokat stb.

Pros

  1. Mint az R

Ha az R-ben készült grafikonok rajongója vagy, és hiányolod a funkcióit, amikor Pythonra váltasz, a Plotly ugyanolyan minőségű grafikonokat ad Python használatával!

A kedvencem a Plotly Express, mert nagyon egyszerűvé teszi, és még gyorsabbá is teszi, hogy egyetlen Python sorból nagyszerű plotokat készítsen.

Egyszerű interaktív plotok készítése

A Plotly az interaktív plotok készítését is megkönnyíti. Az interaktív plotok nemcsak szépek, hanem megkönnyítik a nézők számára, hogy közelebbről is megnézzék az egyes adatpontokat.

Emlékszik a matplotlib segítségével korábban készített oszlopdiagramra? Lássuk, mi lesz belőle a Plotlyval

Nagyjából ugyanazokkal a kódsorokkal egy olyan interaktív plotot készítünk, hogy az egérrel az egyes sávok fölé mozgatva láthatjuk, milyen felhasználót és a követők számát képviseli a sáv. Ez azt jelenti, hogy a vizualizáció felhasználója maga is felfedezheti azt.

3. Komplex ábrák egyszerűen

A Plotlyval néhány olyan ábrát is könnyen létrehozhatunk, amelyek elkészítése általában kihívást jelent.

Ha például egy térképet szeretnénk készíteni a Github-felhasználók helyének vizualizálására, akkor az itt látható módon megtalálhatjuk a szélességi és hosszúsági fokukat, majd ezeket az adatokat felhasználva kiszúrhatjuk a felhasználók helyét a térképen, így

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

  1. 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

  1. 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:

admin

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.

lg