- Confused about which Visualization Tool to Use? I Broke Down the Pros and Cons of Each Libary for You
- Data
- Matplotlib
- Pros
- Miinukset
- Takeaway: Matplotlib voi piirtää mitä tahansa, mutta monimutkaiset plotit saattavat vaatia paljon enemmän koodia kuin muut kirjastot
- Plussat
- Tehdään yleisesti käytetyistä piirtokuvista kauniimpia
- Miinukset
- Plotly
- Pros
- Altair
- Myönteiset puolet
- Miinukset
- Bokeh
- Pros
- Miinukset
- Folium
- Pros
- Johtopäätös
Confused about which Visualization Tool to Use? I Broke Down the Pros and Cons of Each Libary for You
Tämä opas on päivitetty muutamilla syvällisemmillä esimerkein. Löydät uusimman version blogista täältä.
Jos olet aloittamassa Python-visualisointia, saatat olla hukkua kirjastojen ja esimerkkien määrään:
- Matplotlib
- Seaborn
- Plotly
- Bokeh
- Altair
- Folium
Jos sinulla on DataFrame odottamassa visualisointia, mikä niistä kannattaa valita? Jotkut kirjastot saattavat olla parempia tietyissä tapauksissa kuin toiset. Tässä artikkelissa esitellään kunkin hyvät ja huonot puolet. Artikkelin lopussa sinun pitäisi pystyä erottamaan kunkin kirjaston erilaiset ominaisuudet ja sinun on helpompi valita optimaalinen kirjasto.
Toteutamme tämän käyttämällä esimerkkitietokokonaisuutta ja tutkimalla sitä käyttäen kutakin kirjastoa keskittyen muutamaan tiettyyn ominaisuuteen:
Vuorovaikutteisuus
Tahdotko visualisointisi olevan vuorovaikutteista?
Jotkut kirjastot, kuten Matplotlib, renderöivät visualisoinnit kuvina; näin ollen ne sopivat hyvin käsitteiden selittämiseen (paperissa, diaesityksessä tai esityksessä).
Toisaalta kirjastot, kuten Altair, Bokeh ja Plotly, mahdollistavat vuorovaikutteisten graafien luomisen, joihin käyttäjät voivat sukeltaa ja joita he voivat tutkia itse.
Syntaksi ja joustavuus
Miten kummankin kirjastokirjaston syntaksi eroaa? Alemman tason kirjastot, kuten Matplotlib, antavat sinulle mahdollisuuden tehdä mitä tahansa, mitä voisit kuvitella haluavasi – mutta monimutkaisemman API:n hinnalla. Jotkin kirjastot, kuten Altair, ovat hyvin deklaratiivisia, mikä helpottaa datasi kartoittamista.
Datatyyppi ja visualisointi
Työskenteletkö erikoistuneessa käyttötapauksessa, kuten maantieteellisessä karttapiirroksessa, suurilla datamäärillä tai käytätkö piirrostyyppiä, jota vain tietty kirjasto tukee?
Data
Vertailun helpottamiseksi käytän tässä artikkelissa todellista dataa, jota kaapin Githubista:
Aion upottaa visualisoinnit kustakin kirjastosta käyttäen Datapanea, joka on Python-kehys ja API Python-raporttien julkaisemiseen ja jakamiseen. Jos haluat nähdä lisää todellisia esimerkkejä, tutustu Datapane-galleriassa oleviin käyttäjien tuottamiin raportteihin.
Jos haluat seurata artikkelia, voit joko ladata csv-tiedoston täältä tai hakea suorat tiedot Datapane Blobista.
import datapane as dpdp.Blob.get(name='github_data', owner='khuyentran1401').download_df()
Muista kirjautua Datapaneen tunnuksellasi etukäteen, jos haluat käyttää Blobia. Tämän pitäisi kestää alle 1 minuutin
Matplotlib
Matplotlib on luultavasti yleisin Python-kirjasto datan visualisointiin. Jokainen datatieteestä kiinnostunut on luultavasti käyttänyt Matplotlibiä ainakin kerran.
Pros
- Helppo nähdä datan ominaisuus
Dataa analysoitaessa voi olla ihanteellista vilkaista nopeasti jakaumaa.
Jos esimerkiksi haluan vilkaista nopeasti jakaumaa sadasta eniten seuraajia saaneesta käyttäjästä, Matplotlibin käyttäminen riittää yleensä.
Vaikka Matplotlibin x-akseli ei näytäkään hyvältä, saamme paremman käsityksen datan jakaumasta kuvaajaa katsomalla.
2. Voi piirtää mitä tahansa
Matplotlib on hyvin monipuolinen, mikä tarkoittaa, että sillä voi piirtää minkä tahansa kuvaajan, jonka voit kuvitella. Matplotlibin nettisivuilla on erittäin kattava dokumentaatio ja galleriassa on erilaisia graafeja, joiden avulla on helppo löytää opetusohjelmia mihin tahansa hulluun plottiin, jonka voit kuvitella.
Tällaista tekstiä:
Miinukset
Matplotlib osaa piirtää mitä tahansa, mutta voi olla monimutkaista piirtää muita kuin perusdiagrammeja tai säätää diagrammeja kivan näköisiksi.
Vaikka plotti on riittävän hyvä visualisoimaan jakaumaa, jos haluat esittää datasi muille, sinun on korjattava x-akseli, y-akseli, mikä vaatii paljon vaivaa. Tämä johtuu siitä, että Matplotlibissa on erittäin matalan tason käyttöliittymä.
Takeaway: Matplotlib voi piirtää mitä tahansa, mutta monimutkaiset plotit saattavat vaatia paljon enemmän koodia kuin muut kirjastot
Seaborn on Python-datan visualisointikirjasto, joka perustuu Matplotlibiin. Se tarjoaa kirjastolle korkeamman tason kääreen, joka tekee kirjaston käytöstä helpompaa.
Plussat
- Vähemmän koodia
Se tarjoaa korkeamman tason rajapinnan samankaltaisia plotteja varten. Toisin sanoen, seaborn tarjoaa yleisesti ottaen samanlaisia plotteja kuin matplotlib, mutta vähemmällä koodilla ja kauniimmalla ulkoasulla.
Käytämme samaa dataa kuin ennenkin piirtääksemme samanlaisen lämpökartan kuvaajasta.
Voitamme paremman lämpökartaston määrittelemättä x:n ja y:n merkintöjä!
Tehdään yleisesti käytetyistä piirtokuvista kauniimpia
Monet valitsevat seabornin, kun kyse on suosituista piirtokuvista, kuten pylväsdiagrammeista, laatikkodiagrammeista, laskentadiagrammeista, histogrammeista jne. ei vain siksi, että ne voidaan luoda vähemmällä koodilla, vaan ne näyttävät myös paljon kauniimmilta. Kuten näemme yllä olevassa esimerkissämme, myös värit näyttävät paremmilta kuin Matplotlibin oletusvärit.
Miinukset
Seaborn on rajoitetumpi eikä sillä ole yhtä laajaa kokoelmaa kuin matplotlibillä
Takeaway: Seaborn on korkeamman tason versio Matplotlibistä. Vaikka sillä ei ole yhtä laajaa kokoelmaa kuin Matplotlibillä, seaborn saa suositut kuvaajat, kuten pylväsdiagrammit, laatikkodiagrammit, lämpökartat jne. näyttämään nätiltä vähemmällä koodilla.
Plotly
Plotlyn Python-grafiikkakirjasto helpottaa vuorovaikutteisten, julkaisukelpoisten graafien luomista. Se voi myös luoda samanlaisia kaavioita kuin Matplotlib ja seaborn, kuten viivadiagrammeja, hajontadiagrammeja, aluediagrammeja, pylväsdiagrammeja jne.
Pros
- Tyylinen R
Jos olet R:n piirrosten fani ja kaipaat sen ominaisuuksia siirryttäessäsi käyttämään Pythonia, Plotlyllä saat yhtä laadukkaat piirrokset Pythonin avulla!
Suosikkini on Plotly Express, koska sillä on todella helppoa ja jopa nopeampaa luoda loistavia plotteja yhdellä Python-rivillä.
Helppo luoda vuorovaikutteisia plotteja
Plotlylla on myös helppo luoda vuorovaikutteisia plotteja. Vuorovaikutteiset plotit eivät ole vain kauniita, vaan myös helpottavat katsojia tarkastelemaan tarkemmin jokaista datapistettä.
Muistatko aiemmin matplotlibilla tekemämme pylväsdiagrammin? Katsotaanpa, miten siitä tulee Plotlyllä
Muutaman koodirivin avulla kaikkien käyttäjien sijainnit on esitetty kauniisti kartalla. Kuplien väri edustaa haarukoiden lukumäärää ja koko tähtien kokonaismäärää
Takeaway: Plotly sopii erinomaisesti interaktiivisten ja julkaisukelpoisten graafien luomiseen muutamalla rivillä koodia.
Altair
Altair on deklaratiivinen tilastollinen visualisointikirjasto Pythonille, joka perustuu vega-liteen, mikä tekee siitä ihanteellisen paljon tilastollisia transformaatioita vaativille piirtoheitinkuvioille.
Myönteiset puolet
1. Yksinkertainen visualisoinnin kielioppi
Visualisoinnin luomiseen käytetty kielioppi on helppo ymmärtää. Siinä tarvitsee vain mainita datasarakkeiden väliset yhteydet koodauskanaviin ja loput piirtämisestä hoituu automaattisesti. Tämä kuulostaa abstraktilta, mutta on suuri asia, kun työskentelet datan kanssa, ja se tekee tiedon visualisoinnista todella nopeaa ja intuitiivista. Helppo muuntaa dataa
Altair tekee myös datan muuntamisen todella helpoksi kaaviota luotaessa
Jos esimerkiksi haluaisimme löytää kunkin sukupuolen keski-iän Titanicissa, sen sijaan, että tekisimme muunnoksen etukäteen kuten Plotly, voisimme suorittaa muunnoksen koodin sisällä kaaviota luodessamme.
Voisimme myös varmistaa, että luokka on nominaalidataa (kategorista dataa ilman mitään järjestystä). käyttämällä :N
tai varmistaa, että mean_ikä on kvantitatiivista dataa (arvojen mittoja, kuten lukuja) käyttämällä :Q
Katso täydellinen luettelo datan muunnoksista täältä
3. Helppo linkittää kuvaajia
Altairin avulla voit myös tehdä vaikuttavia linkityksiä kuvaajien välillä, kuten käyttää intervallivalintaa liitetyn histogrammin sisällön suodattamiseen. Yhdistettynä aiemmin mainittuihin muunnoksiin ja laskutoimituksiin tämä tarkoittaa, että voit luoda erittäin vuorovaikutteisia kaavioita, jotka tekevät laskutoimituksia lennossa – ilman, että tarvitaan edes käynnissä olevaa Python-palvelinta!
Miinukset
Jos et määritä mukautettua muotoilua, yksinkertaiset kaaviot, kuten pylväskaavio, eivät näytä yhtä muotoilluilta kuin seaborn tai Plotly. Altair ei myöskään suosittele tietokokonaisuuksia, joissa on yli 5000 näytettä, vaan suosittelee tietojen aggregointia ennen visualisointia.
Takeaway: Altair sopii erinomaisesti hienostuneisiin kaavioihin tilastojen esittämiseen. Altair ei pysty käsittelemään yli 5000 otoksen dataa ja jotkut yksinkertaiset kaaviot eivät näytä yhtä tyylitellyiltä verrattuna Plotlyyn tai Seaborniin.
Bokeh
Bokeh on joustava vuorovaikutteinen visualisointikirjasto, joka on suunnattu web-selaimille esittämiseen.
Pros
- Interaktiivinen versio Matplotlibistä
Jos asetamme yllä olevat interaktiiviset visualisointikirjastot paremmuusjärjestykseen, Bokeh sijoittuu luultavasti ykköseksi Matplotlibin samankaltaisuuden suhteen.
Matplotlibillä voi luoda minkä tahansa plotin, koska se on matalan tason visualisointikirjasto. Bokehia voidaan käyttää sekä korkean tason että matalan tason rajapintana; näin ollen se voi luoda monia kehittyneitä plotteja, joita Matplotlib luo, mutta vähemmillä koodiriveillä ja korkeammalla resoluutiolla.
Esimerkiksi, Matplotlib
Ympyrädiagrammi voitaisiin myös luoda paremmalla resoluutiolla ja hyödyllisemmin käyttämällä Bokehia
2. Tonttien välinen linkitys
Bokeh tekee myös tonttien välisen linkityksen todella helpoksi. Yhdessä plotissa sovellettu muutos sovelletaan toiseen plottiin, jossa on samanlainen muuttuja.
Jos esimerkiksi luomme 3 kuvaajaa vierekkäin ja haluamme tarkkailla niiden suhdetta, Näin ollen, kun sovellamme muutosta yhteen plottiin, myös muut plotit muuttuvat vastaavasti.
Miinukset
Koska Bokeh on kirjasto, jolla on jokseenkin keskitason käyttöliittymä, se vaatii usein vähemmän koodia kuin Matplotlib, mutta saman plotin tuottamiseen tarvitaan enemmän koodia kuin Seaborn, Altair tai Plotly.
Esimerkiksi saman count-plotin luominen titanic-dataa käyttäen sen lisäksi, että dataa on muunnettava etukäteen, meidän täytyy manuaalisesti säätää mittoja, jotta kuvaajasta tulisi kauniimpi
Jos haluat luoda kauniin pylväsdiagrammin vähemmällä koodilla, tämä saattaa olla Bokehin haittapuoli verrattuna muihin kirjastoihin
Takeaway: Bokeh on ainoa kirjasto, jonka käyttöliittymä vaihtelee matalasta korkeaan, mikä helpottaa sekä monipuolisen että tyylikkään grafiikan tuottamista. Tämän hintana on kuitenkin se, että Bokehiin tarvitaan yleensä enemmän koodia, jotta saadaan luotua samanlaatuisia kuvaajia kuin muissa kirjastoissa.
Folium
Foliumilla on helppo visualisoida dataa interaktiivisella lehtikartalla. Kirjastossa on useita sisäänrakennettuja laattasarjoja OpenStreetMapista, Mapboxista ja Stamenista
Pros
- Helppo luoda kartta markkereilla
Vaikka Plotly, Altair, ja Bokeh mahdollistavat myös karttojen luomisen, Folium käyttää avointa katukarttaa antaakseen lähempänä Googlen karttaa olevan tunteen minimaalisella koodilla
Muistatko, kuinka loimme kartan visualisoidaksemme Github-käyttäjien sijainnit Plotlyn avulla? Voisimme saada kartan näyttämään vieläkin hienommalta Foliumin avulla
Alkuperäinen sijainti Brooklynissa, NY:ssä. Zoomaa pienemmälle nähdäksesi muut sijainnit kartalla. Muutamalla koodirivillä olemme luoneet todellisen kartan, joka näyttää käyttäjien sijainnit.
2.
3. Liitännäiset
Foliumilla on useita liitännäisiä, joita voit käyttää kartan kanssa – mukaan lukien liitännäinen Altairiin. Entä jos haluamme nähdä lämpökartan Github-käyttäjien kaikista tähdistä maailmassa ja tunnistaa, missä on paljon Githubin huippukäyttäjiä, joilla on paljon tähtiä? Folium-liitännäisten lämpökartan avulla voit tehdä juuri näin.
Zoomaa pienemmäksi nähdäksesi lämpökartan kokonaiskuvan.
Takeaway: Foliumin avulla voit luoda interaktiivisen kartan muutamalla koodirivillä. Sen avulla pääset lähelle Google-kartan käyttökokemusta.
Johtopäätös
Onnittelut! Olet juuri tutustunut kuuteen eri visualisointityökaluun. Toivottavasti tämä artikkeli antaa sinulle käsityksen siitä, mitä kukin kirjasto tekee ja milloin mitä kannattaa käyttää. Kunkin kirjaston keskeisten ominaisuuksien hahmottaminen nopeuttaa sinua vetämään oikean kirjaston esiin tarpeen mukaan.
Jos olet edelleen hämmentynyt siitä, mitä kirjastoa käyttäisit aineistollesi, valitse vain yksi, joka on mielestäsi riittävän hyvä. Sitten jos koodi on liian pitkä tai kuvaajasta ei tule niin hyvä kuin kuvittelit, kokeile vain toisella kirjastolla!
Vapaasti voit haarukoida ja leikkiä tämän artikkelin koodilla tässä Github-repossa.
Tykkään kirjoittaa datatieteen peruskäsitteistä ja leikkiä erilaisilla algoritmeilla ja datatieteen työkaluilla. Voit olla minuun yhteydessä LinkedInissä ja Twitterissä.
Tähditä tämä repo, jos haluat tutustua kaikkien kirjoittamieni artikkelien koodeihin. Seuraa minua Mediumissa pysyäksesi ajan tasalla uusimmista datatieteen artikkeleistani, kuten näistä: