Sunteți pe pagina 1din 17

Vizualizarea datelor cu libraria Matplotlib

În acest curs vom învăța cum să vizualizăm datele și să le stocăm în noi structuri de
date.

Pe parcurs, vom stăpâni structurile de control, de care vom avea nevoie pentru a
personaliza fluxul scripturilor și algoritmilor.

Acestea sunt lucruri pe care un data scientist le folosește în fiecare zi. Vom încheia
acest capitol cu ​un studiu de caz, în care vom combina tot ceea ce am învățat.
Vizualizarea datelor

Acest prim capitol este despre vizualizarea datelor, care este o parte foarte importantă a
analizei datelor. În primul rând, ne va folosi pentru a explora seturi de date.

Cu cât înțelegem mai bine datele, cu atât mai bine vom putea extrage informații. Odată
ce am găsit aceste informații, din nou, vom avea nevoie de vizualizare pentru a putea
împărtăși informațiile cu alte persoane.
Ca exemplu, analizăm această diagramă. Este făcută de profesorul suedez Hans
Rosling. Aici vedem o diagramă cu bule, în care fiecare bulă reprezintă o țară. Cu cât
bula este mai mare, cu atât populația țării este mai mare, așa că cele mai mari două
bule de aici sunt China și India.

Există 2 axe. Axa orizontală arată PIB-ul pe cap de locuitor, în dolari US. Axa verticală
arată speranța de viață. Vedem clar că oamenii trăiesc mai mult în țările cu un PIB pe
cap de locuitor mai mare.

Cu toate acestea, există o diferență uriașă în speranța de viață între țările cu același
nivel de venit. Motivul pentru care analizăm această diagramă este că până la sfârșitul
acestui capitol, vom putea construi singuri o astfel de diagramă.
Libraria Matplotlib

Există multe librării de vizualizare în Python, dar cea mai importantă este Matplotlib.
Vom avea nevoie de sublibraria sa Pyplot. Prin convenție, aceasta sublibrarie este
importata ca plt.

Pentru primul nostru exemplu, să încercăm să obținem câteva perspective asupra


evoluției populației mondiale. Avem aici o listă cu ani - year și o listă cu populația
globală corespunzătoare anilor - pop, exprimată în miliarde.

În anul 1970, de exemplu, pe Terra trăiau 3,7 miliarde de oameni. Pentru a reprezenta
aceste date ca diagramă cu linii, apelăm plt.plot(lista1, lista2) și folosim cele două liste
ale noastre ca argumente.
Primul argument corespunde axei orizontale, iar al doilea axei verticale.

Am putea crede că diagrama va apărea chiar acum, dar nu se va întâmpla asta.


Acest lucru se datorează faptului că s-ar putea să dorim să adaugam câteva elemente
suplimentare diagramei înainte de a o afișa efectiv, cum ar fi titluri și personalizări ale
etichetelor.

Vom mai vorbi despre asta. Sa ținem minte acest lucru: funcția .plot() îi spune lui Python
ce să traseze și cum să traseze. Functia .show() afișează de fapt diagrama.
Când privim diagrama, vedem că anii sunt într-adevăr afișați pe axa orizontală, iar
populația pe axa verticală.

Există patru puncte de date, iar Python trasează o linie între ele. În 1950, populația lumii
era de aproximativ 2,5 miliarde. În 2010, era în jur de 7 miliarde. Deci populația lumii
aproape s-a triplat în șaizeci de ani. Dacă populația continuă să crească astfel, va
deveni oare Pamantul suprapopulat?
Diagrama de dispersie

Sa analizam un alt tip de diagramă: diagrama de dispersie (scatter plot). Pentru a crea
o astfel de diagrama, putem începe de la codul de mai sus. De data aceasta, totuși,
modificăm funcția diagramei la .scatter().

Diagrama de dispersie trasează pur și simplu toate punctele de date individuale; Python
nu conectează punctele cu o linie. Pentru multe aplicații, diagrama de dispersie este
adesea o alegere mai bună decât diagrama de linii.

De asemenea, am putea spune că acesta este un mod mai corect de a reprezenta


datele, deoarece putem vedea clar că diagrama se bazează pe doar patru puncte de
date.
Histograma

Histograma este foarte utilă pentru analiza datelor. Ne poate ajuta să ne facem o idee
despre distribuția valorilor.

Pentru a vedea cum funcționează, ne vom imagina 12 valori între 0 și 6.


Valorile le așezăm pe axa numerică.

Pentru a construi o histogramă pentru aceste valori, putem să împărțim axa în secțiuni
egale, numite bare (bins, buckets). Să presupunem că alegem 3 bare, fiecare având o
lățime de 2.

Apoi, numărăm câte puncte de date se află în interiorul fiecărei bare.


Există 4 puncte de date în prima bara, 6 în a doua bara si 2 in a treia bara.
În cele din urmă, desenam o bară pentru fiecare secțiune.

Înălțimea barei corespunde numărului de puncte de date care se încadrează în aceasta.


Rezultatul este o histogramă, care ne oferă o imagine de ansamblu asupra modului în
care sunt distribuite cele 12 valori.

Cele mai multe valori sunt la mijloc, dar sunt mai multe valori sub 2 decât sunt peste 4.
Desigur, putem folosi Matplotlib pentru a construi astfel de histograme.

Ca și înainte, ar trebui să începem prin a importa pachetul Pyplot care se află în


Matplotlib. Apoi, putem utiliza funcția .hist(x, bins=, …).

Există o multitudine de argumente pe care le putem specifica, dar primele două de aici
sunt cele mai importante. x ar trebui să fie o listă de valori pentru care dorim să
construim o histogramă. Apelam functia help() pentru metoda .hist().
Putem folosi al doilea argument, bins, pentru a-i spune lui Python în câte bare ar trebui
să fie împărțite datele. Pe baza acestui număr, hist va găsi automat limitele adecvate
pentru toate barele și va calcula cât de multe valori sunt în fiecare.

Dacă nu specificam argumentul bins, acesta va fi implicit 10.


Deci, pentru a genera o histograma după modelul de mai sus, să începem prin a
construi o listă cu cele 12 valori.

Apoi, pur și simplu apelăm funcția .hist() și trecem această listă ca input, astfel încât să
se potrivească cu argumentul x. Specificam, de asemenea, argumentul bins să fie egal
cu 3, astfel încât valorile să fie împărțite în trei bare.
Dacă apelăm funcția .show(), obținem o histogramă. Histogramele sunt cu adevărat
utile pentru a oferi o imagine de ansamblu.

Ca exemplu, aruncăm o privire la această așa-numită piramidă a populației.


Distribuția pe vârste este prezentată, atât pentru bărbații, cât și pentru femeile din
cadrul Uniunii Europene.

Observăm că histogramele sunt răsturnate cu 90 de grade; barele sunt acum orizontale.


Barele cele mai mari sunt cele aferente vârstelor între 40 și 44 de ani, unde sunt 20 de
milioane de bărbați și 20 de milioane de femei. Ei sunt așa-numiții baby boomers.

Acestea sunt cifrele anului 2010. Cum oare se vor schimba în 2050?
Dacă aruncăm o privire, distribuția este mai plată, iar generația baby boom a îmbătrânit.

Putem observa cu ușurință cum se va schimba demografia în timp. Aceasta este


adevărata putere a histogramelor.

Acum că am aflat cum arată o histogramă și care este rolul ei, să ne apucăm să
personalizăm diagramele.

Crearea unei diagrame este un pas. A face o diagramă corectă, care transmite un
mesaj foarte clar -- aceasta este adevărata provocare.
Vizualizarea datelor

Pentru fiecare tip de vizualizare, avem multe opțiuni. În primul rând, există diferite tipuri
de diagrame. Și pentru fiecare diagramă, putem face un număr mare de customizări.

Putem schimba culorile, formele, etichetele, axele și așa mai departe.


Alegerea depinde de datele vizualizate și de povestea pe care dorim să o spunem cu
aceste date.

Deoarece există atât de multe customizări posibile, cel mai bun mod de a învăța acest
lucru este prin exemple.
Să începem cu codul din acest script pentru a construi o diagramă simplă. Este similar
cu graficul pe linii pe care l-am creat anterior, dar de data aceasta listele de ani și
populație conțin mai multe date, inclusiv proiecții până în anul 2100, prognozate de
Națiunile Unite.

Dacă rulăm acest script, obținem deja o diagramă destul de frumoasă care ne arată că
explozia demografică care are loc va fi încetinită până la sfârșitul secolului.

Dar unele lucruri pot fi îmbunătățite. În primul rând, ar trebui să fie mai clar ce date
afișăm, în special pentru persoanele care văd graficul pentru prima dată. Și în al doilea
rând, diagrama chiar trebuie să atragă atenția asupra exploziei populației.
Primul lucru pe care trebuie să-l facem întotdeauna este să etichetam axele. Să facem
asta adăugând funcțiile .xlabel() și .ylabel().

Ca input-uri, trecem string-uri care ar trebui să fie plasate lângă axe. Aceste funcții
trebuiesc apelate înainte de a apela funcția .show(), altfel customizările nu vor fi afișate.
Dacă rulăm din nou scriptul, de data aceasta axele sunt denumite.

Vom adăuga, de asemenea, un titlu diagramei noastre, cu funcția .title(). Trecem titlul
propriu-zis - 'World Population Projections' ca argument.

Și avem titlu! Așadar, folosind .xlabel(), .ylabel() și .title(), putem oferi cititorului mai
multe informații despre datele din diagramă. Pentru a pune creșterea populației în
perspectivă, axa y ar trebui să înceapă de la zero.

Putem face acest lucru cu funcția .yticks(). Primul input este o listă, în acest exemplu cu
numerele de la zero până la zece, cu intervale de 2.
Dacă rulăm, diagrama se va schimba: curba se deplasează în sus. Acum este clar că în
1950, erau deja aproximativ 2,5 miliarde de oameni pe această planetă.

În continuare, pentru a fi clar că vorbim despre miliarde, putem adăuga un al doilea


argument la funcția .yticks(), care este o listă cu numele afișate pentru etichete.
Această listă trebuie să aibă aceeași lungime ca prima listă.
Eticheta 0 primește numele 0, eticheta 2 primește numele 2B, respectiv eticheta 4
primește numele 4B și așa mai departe. Apropo, B înseamnă billions aici adică miliarde.
Dacă rulăm această versiune a scriptului, Diagrama se va schimba în consecință.

În sfârșit, să adăugăm câteva date istorice pentru a accentua explozia demografică din
ultimii 60 de ani. Pe wikipedia, am găsit datele populației mondiale pentru anii 1800,
1850 și 1900. Le putem scrie sub formă de listă și le putem atașa listelor pop și year cu
semnul plus.

Dacă rulam scriptul, trei puncte de date sunt adăugate graficului, oferind o imagine mai
completă.

Așa transformam un grafic de linii mediocru într-unul care are o poveste clară de spus.

S-ar putea să vă placă și