Photo by oxana v on Unsplash

Acest ghid a fost actualizat cu câteva exemple mai aprofundate. Puteți găsi cea mai recentă versiune a blogului aici.

Dacă sunteți la început cu vizualizarea Python, este posibil să fiți copleșit de numărul de biblioteci și exemple:

  • Matplotlib
  • Seaborn
  • Plotly
  • Bokeh
  • Altair
  • Folium

Dacă aveți un DataFrame care așteaptă să fie vizualizat, pe care dintre ele ar trebui să o alegeți? Unele biblioteci ar putea fi mai bune în cazuri specifice decât celelalte. Acest articol va arăta avantajele și dezavantajele fiecăreia. La sfârșitul acestui articol, ar trebui să puteți distinge diferitele caracteristici ale fiecărei biblioteci și să vă fie mai ușor să o alegeți pe cea optimă.

Vom face acest lucru folosind un set de date de probă și explorându-l folosind fiecare bibliotecă, concentrându-ne pe câteva atribute specifice:

Interactivitate

Vreți ca vizualizarea dvs. să fie interactivă?

Câteva biblioteci, cum ar fi Matplotlib, redau vizualizările sub formă de imagini; astfel, acestea sunt bune pentru a explica concepte (într-o lucrare, slide deck sau prezentare).

Pe de altă parte, biblioteci precum Altair, Bokeh și Plotly vă permit să creați grafice interactive în care utilizatorii dvs. se pot scufunda și explora singuri

Sintaxa și flexibilitatea

Cum diferă sintaxa pentru fiecare bibliotecă? Bibliotecile de nivel inferior, cum ar fi Matplotlib, vă permit să faceți orice ați putea concepe – dar cu prețul unui API mai complex. Unele biblioteci, cum ar fi Altair, sunt foarte declarative, ceea ce ușurează cartografierea datelor dumneavoastră.

Tipul de date și vizualizare

Lucrați cu un caz de utilizare specializat, cum ar fi un grafic geografic, cu date mari, sau folosiți un tip de grafic care este suportat doar de o anumită bibliotecă?

Date

Pentru a facilita comparația, voi folosi în acest articol datele reale pe care le extrag din Github:

Voi încorpora vizualizările din fiecare bibliotecă folosind Datapane, care este un cadru Python și un API pentru publicarea și partajarea rapoartelor Python. Dacă doriți să vedeți mai multe exemple din lumea reală, consultați rapoartele contribuției utilizatorilor în galeria Datapane.

Pentru a urmări articolul, fie descărcați fișierul csv de aici, fie obțineți datele direct din Datapane Blob.

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

Nu uitați să vă conectați în prealabil la Datapane cu token-ul dvs. dacă doriți să utilizați Blob. Acest lucru ar trebui să dureze mai puțin de 1 minut

Matplotlib

Matplotlib este probabil cea mai comună bibliotecă Python pentru vizualizarea datelor. Toată lumea care este interesată de știința datelor a folosit probabil Matplotlib cel puțin o dată.

Pros

  1. Facil de văzut proprietatea datelor

Când analizați date, să aruncați o privire rapidă asupra distribuției poate fi ideal.

De exemplu, dacă vreau să arunc o privire rapidă asupra distribuției primilor 100 de utilizatori cu cei mai mulți urmăritori, utilizarea Matplotlib este de obicei suficientă.

Chiar dacă axa x din Matplotlib nu arată bine, avem o mai bună înțelegere a distribuției datelor uitându-ne la grafic.

2. Poate trasa orice

Matplotlib este foarte versatil, ceea ce înseamnă că poate trasa orice tip de grafic pe care vi-l puteți imagina. Site-ul Matplotlib conține o documentație foarte cuprinzătoare și diverse grafice în galerie, ceea ce facilitează găsirea de tutoriale pentru orice grafic nebunesc la care vă puteți gândi.

Ca un text de genul acesta:

Cons

Matplotlib poate trasa orice, dar poate fi complexă trasarea graficelor nebazice sau ajustarea graficelor pentru a arăta bine.

Chiar dacă graficul este suficient de bun pentru a vizualiza distribuția, dacă doriți să vă reprezentați datele pentru alții, va trebui să fixați axa x, axa y, ceea ce necesită mult efort. Acest lucru se datorează faptului că Matplotlib are o interfață de nivel extrem de scăzut.

Takeaway: Matplotlib poate trasa orice, dar trasee complexe ar putea necesita mult mai multe coduri decât alte biblioteci

Seaborn este o bibliotecă Python de vizualizare a datelor bazată pe Matplotlib. Oferă un înveliș de nivel superior asupra bibliotecii, ceea ce o face mai ușor de utilizat.

Pros

  1. Mai puțin cod

Aprovizionează o interfață de nivel superior pentru diagrame similare. Într-un alt cuvânt, seaborn oferă în general parcele similare cu matplotlib, dar cu mai puțin cod și un design mai frumos.

Utilizăm aceleași date ca înainte pentru a desena o hartă termică similară a graficului.

Obținem o hartă termică mai bună fără a seta eticheta x și y!

Faceți mai frumoase graficele utilizate în mod obișnuit

Mulți oameni optează pentru seaborn atunci când vine vorba de graficele populare, cum ar fi graficul de bare, graficul de cutie, graficul de numărare, histogramele etc., nu doar pentru că acestea ar putea fi create cu mai puțin cod, ci și pentru că arată mult mai frumos. După cum putem vedea în exemplul nostru de mai sus, culorile arată, de asemenea, mai bine decât cea implicită din Matplotlib.

Cons

Seaborn este mai constrâns și nu are o colecție la fel de largă ca matplotlib

Takeaway: Seaborn este o versiune de nivel superior a Matplotlib. Chiar dacă nu are o colecție largă ca Matplotlib, seaborn face ca graficele populare, cum ar fi bar plot, box plot, heatmap, etc. să arate frumos în mai puțin cod.

Plotly

Biblioteca de grafică Python a lui Plotly facilitează crearea de grafice interactive, de calitate pentru publicații. De asemenea, poate crea grafice similare cu Matplotlib și seaborn, cum ar fi diagrame de linii, diagrame de dispersie, diagrame de suprafață, diagrame de bare, etc.

Pros

  1. Ca R

Dacă sunteți un fan al graficelor din R și vă lipsesc caracteristicile sale atunci când treceți la Python, Plotly vă oferă aceleași grafice de calitate folosind Python!

Preferatul meu este Plotly Express pentru că face foarte ușor și este chiar mai rapid să creezi grafice grozave de la o singură linie de Python.

Este ușor să creezi grafice interactive

Plotly face, de asemenea, ușor să creezi grafice interactive. Graficele interactive nu sunt doar frumoase, ci și facilitează privitorilor să se uite mai atent la fiecare punct de date.

Îți amintești graficul cu bare pe care l-am făcut mai devreme cu matplotlib? Haideți să vedem cum iese cu Plotly

Cu aproximativ aceleași linii de cod, producem un grafic interactiv pe care am putea să trecem mouse-ul peste fiecare bară pentru a vedea ce utilizator și numărul de urmăritori reprezintă bara respectivă. Acest lucru înseamnă că consumatorul vizualizării dvs. o poate explora el însuși.

3. Diagrame complexe făcute ușor

Cu Plotly, unele diagrame care sunt de obicei dificil de creat pot fi create cu ușurință.

De exemplu, dacă am dori să creăm o hartă pentru a vizualiza locațiile utilizatorilor Github, putem găsi latitudinile și longitudinile acestora, așa cum se arată aici, și apoi să folosim aceste date pentru a repera locațiile utilizatorilor pe hartă astfel

Cu câteva linii de cod, locațiile tuturor utilizatorilor sunt frumos reprezentate pe o hartă. Culoarea bulelor reprezintă numărul de bifurcații, iar mărimea reprezintă numărul total de stele

Takeaway: Plotly este excelent pentru a crea grafice interactive și de calitate pentru publicații cu câteva linii de cod.

Altair

Altair este o bibliotecă declarativă de vizualizare statistică pentru Python bazată pe vega-lite, ceea ce o face ideală pentru grafice care necesită multe transformări statistice.

Pros

1. Gramatică simplă de vizualizare

Gramatica folosită pentru a crea vizualizarea este ușor de înțeles. Trebuie doar să se menționeze legăturile dintre coloanele de date și canalele de codificare, iar restul reprezentării grafice este gestionată automat. Acest lucru pare abstract, dar este foarte important atunci când lucrați cu date și face ca vizualizarea informațiilor să fie foarte rapidă și intuitivă.

De exemplu, cu datele Titanic de mai sus, am dori să numărăm numărul persoanelor din fiecare clasă, tot ce avem nevoie este să folosim count() în axa y_axis

2. Ușor de transformat datele

Altair face, de asemenea, foarte ușoară transformarea datelor în timp ce se creează graficul

De exemplu, dacă am dori să aflăm vârsta medie a fiecărui sex din Titanic, în loc să facem transformarea în avans, cum ar fi Plotly, am putea efectua transformarea în cadrul codului de creare a graficului.

Am putea, de asemenea, să ne asigurăm că clasa este o dată nominală (date categorice fără nicio ordine) folosind :N sau să ne asigurăm că mean_age este o dată cantitativă (măsuri de valori, cum ar fi numere) folosind :Q

Vezi o listă completă de transformări de date aici

3. Ușor de legat diagrame

Altair vă permite, de asemenea, să realizați unele legături impresionante între diagrame, cum ar fi utilizarea unei selecții de intervale pentru a filtra conținutul unei histograme atașate.

De exemplu, dacă dorim să vizualizăm numărul de persoane din fiecare clasă în cadrul intervalului pe care selectăm un grafic punctual între vârstă și tarif, am putea face ceva de genul acesta.

În timp ce tragem mouse-ul pentru a selecta intervalul în cadrul graficului de dispersie, am putea vedea schimbarea în graficul cu bare de mai jos. Atunci când este combinat cu transformările și calculele de mai devreme, acest lucru înseamnă că puteți crea niște diagrame extrem de interactive care fac calcule din mers – fără a fi nevoie nici măcar de un server Python în funcțiune!

Cons

Dacă nu specificați o stilizare personalizată, graficele simple, cum ar fi graficul cu bare, nu arată la fel de stilizat ca seaborn sau Plotly. De asemenea, Altair nu recomandă seturi de date cu mai mult de 5.000 de eșantioane și, în schimb, vă recomandă să vă agregați datele înainte de vizualizare.

Takeaway: Altair este ideal pentru diagrame sofisticate pentru a arăta statistici. Altair nu poate gestiona date de peste 5000 de eșantioane și unele diagrame simple nu arată la fel de stilat în comparație cu Plotly sau Seaborn.

Bokeh

Bokeh este o bibliotecă flexibilă de vizualizare interactivă care vizează browserele web pentru reprezentare.

Pros

  1. Versiunea interactivă a Matplotlib

Dacă vom face un clasament între bibliotecile de vizualizare interactivă de mai sus, Bokeh va fi probabil pe primul loc în ceea ce privește asemănarea cu Matplotlib.

Matplotlib poate crea orice grafic deoarece este o bibliotecă de vizualizare de nivel scăzut. Bokeh poate fi folosită atât ca o interfață de nivel înalt, cât și ca o interfață de nivel scăzut; astfel, poate crea multe dintre graficele sofisticate pe care le creează Matplotlib, dar cu mai puține linii de cod și cu o rezoluție mai mare.

De exemplu, graficul circular al Matplotlib

poate fi creat și el cu o rezoluție mai bună și mai utilă folosind Bokeh

2. Legătura între parcele

Bokeh face, de asemenea, foarte ușoară legătura între parcele. Modificarea aplicată într-o parcelă va fi aplicată unei alte parcele cu o variabilă similară.

De exemplu, dacă creăm 3 grafice unul lângă altul și dorim să observăm relația dintre ele, am putea folosi brushing-ul legat

ColumnDataSource permite partajarea datelor între grafice. Astfel, atunci când aplicăm modificarea la o parcelă, și celelalte parcele sunt modificate în consecință.

Cons

Pentru că Bokeh este o bibliotecă care are oarecum o interfață de nivel mediu, deseori este nevoie de mai puțin cod decât Matplotlib, dar este nevoie de mai mult cod pentru a produce aceeași parcelă ca Seaborn, Altair sau Plotly.

De exemplu, pentru a crea același grafic de numărare folosind date titanice, pe lângă necesitatea de a transforma datele în prealabil, trebuie, de asemenea, să setăm lățimea barei și culoarea dacă vrem ca graficul să arate bine

Dacă nu am adăuga lățimea pentru graficul cu bare, graficul ar arăta astfel

Așa, trebuie să ajustăm manual dimensiunile pentru a face graficul mai frumos

Dacă doriți să creați un grafic de bare frumos în mai puțin cod, acesta ar putea fi dezavantajul lui Bokeh în comparație cu alte biblioteci

Takeaway: Bokeh este singura bibliotecă a cărei interfață variază de la mic la mare, ceea ce facilitează producerea de grafice atât versatile, cât și elegante. Cu toate acestea, acest lucru vine cu prețul că, în general, este nevoie de mai mult cod pentru ca Bokeh să creeze graficele cu o calitate similară cu cea a altor biblioteci.

Folium

Folium facilitează vizualizarea datelor pe o hartă interactivă de tip leaflet. Biblioteca are o serie de seturi de plăci integrate de la OpenStreetMap, Mapbox și Stamen

Pros

  1. Este ușor de creat o hartă cu markeri

Chiar dacă Plotly, Altair, și Bokeh ne permit, de asemenea, să creăm hărți, Folium folosește o hartă stradală deschisă pentru a vă oferi o senzație mai apropiată de o hartă Google cu un cod minim

Îți amintești cum am creat harta pentru a vizualiza locațiile utilizatorilor Github folosind Plotly? Am putea face harta să arate și mai frumos cu Folium

Localizarea inițială în Brooklyn, NY. Măriți imaginea pentru a vedea și alte locații pe hartă. Cu câteva rânduri de coduri, am creat o hartă reală care arată locațiile utilizatorilor.

2. Adăugarea unei potențiale locații

Dacă dorim să adăugăm potențiale locații ale altor utilizatori, Folium facilitează acest lucru, permițând utilizatorilor să adauge markere

Click pe hartă pentru a vedea o nouă locație generată chiar în locul în care faceți click.

3. Plugin-uri

Folium are un număr de plugin-uri pe care le puteți folosi cu harta dumneavoastră – inclusiv un plugin pentru Altair. Ce se întâmplă dacă vrem să vedem harta de căldură a numărului total de stele ale utilizatorilor Github din lume pentru a identifica unde există un număr mare de utilizatori Github de top cu un număr mare de stele? Harta de căldură din pluginurile Folium vă permite să faceți exact acest lucru.

Descoperiți pentru a vedea imaginea completă a hărții de căldură.

Takeaway: Folium vă permite să creați o hartă interactivă cu câteva linii de cod. Vă oferă o experiență apropiată de cea a unei hărți Google.

Concluzie

Felicitări! Tocmai ați învățat despre șase instrumente de vizualizare diferite pentru vizualizarea dumneavoastră. Sper ca acest articol să vă dea o idee despre ce face fiecare bibliotecă și când să folosiți ce. Înțelegerea caracteristicilor cheie ale fiecărei biblioteci vă va permite să scoateți mai repede biblioteca potrivită în funcție de necesități.

Dacă sunteți încă confuz cu privire la ce bibliotecă să folosiți pentru datele dumneavoastră, alegeți doar una care vi se pare suficient de bună. Apoi, dacă codul este prea lung sau dacă graficul nu iese la fel de bine cum vă imaginați, încercați cu o altă bibliotecă!

Simțiți-vă liber să faceți fork și să vă jucați cu codul pentru acest articol în acest repo Github.

Îmi place să scriu despre conceptele de bază ale științei datelor și să mă joc cu diferiți algoritmi și instrumente de știință a datelor. Ați putea să vă conectați cu mine pe LinkedIn și Twitter.

Star acest repo dacă doriți să verificați codurile pentru toate articolele pe care le-am scris. Urmăriți-mă pe Medium pentru a fi la curent cu cele mai recente articole despre știința datelor ca acestea:

.

admin

Lasă un răspuns

Adresa ta de email nu va fi publicată.

lg