You are on page 1of 8

1.

Uvod

U 3. projektnom zadatku morali smo pomoću alata Pyhton Matplotlib, Seaborn i Tableau
izradi vizualizaciju podataka koristeći skup naših podataka. Koristili smo isti skup podataka
kao i u prijašnjim projektnim zadacima. Morali smo izraditi minimalno 3 vizualizacije u
Matplotlibu, 2 u Seabornu te 3 u Tableauu.

2. Objasnjenje koda

2.1. Matplotlib
Prvo smo importali sve potrebne biblioteke
 import matplotlib.pyplot as plt omogućava pristup funkcijama i metodama iz
biblioteke Matplotlib, koja se često koristi za vizualizaciju podataka
 import pandas as pd omogućava pristup funkcijama i metodama iz biblioteke
Pandas, koja se koristi za manipulaciju i analizu podataka
Zatim smo učitali podatke iz CSV datoteke
 data = pd.read_csv('pj3_hr.csv', delimiter=';') učitava podatke iz CSV datoteke
'pj3_hr.csv' i sprema ih u varijablu data. read_csv() je funkcija iz Pandas biblioteke
koja omogućava učitavanje podataka iz CSV datoteke. Parametar delimiter=';'
označava da se podaci u datoteci razdvajaju znakom ';'
Zatim ovisno o vrsti vizualizacije koji smo htjeli, morali smo izvući potrebne podatke iz tablice
 Tortni graf
 Stvorili smo varijable sizes1, labels1, sizes2, labels2, sizes3, labels3, sizes4, labels4,
sizes5 i labels5 koje sadrže određene podatke iz DataFrame objekta data
 sizes[i] = data['godina'] preuzima vrijednosti iz stupca neke godine iz DataFramea
objekta data i sprema ih u varijablu sizes[i] ([i] predstavlja broj od 1 do 5) npr. sizes1
sardzi vrijednosti za godinu 2001
 labels[i] = dana['zupanije'] preuzima vrijednosti iz stupca 'zupanije' iz DataFrame
objekta data i sprema ih u varijablu labels1. To znači da labels1 sadrži oznake (nazive
županija) koje odgovaraju veličinama u sizes1
 Linijski graf
 Kod linijskog grafa dohvatili smo podatke iz stupaca
 x = data['zupanije'] preuzima vrijednosti iz stupca 'zupanije' iz DataFrame objekta
data i sprema ih u varijablu x, odnosno da x sadrži nazive županija
 y1 = data['2001'] preuzima vrijednosti iz stupca '2001' iz DataFrame objekta data i
sprema ih u varijablu y1, odnosno y1 sadrži podatke za godinu 2001
 Isto tako i ostale varijable primaju vrijednosti iz stupca koji je određen unutar uglatih
zagrada
 Stupčasti graf
 Stvorili smo varijable categories1, values1, categories2, values2, categories3,
values3, categories4, values4, categories5 i values5 koje sadrže određene podatke iz
DataFrame objekta data
 categories1 = data['zupanije'] preuzima vrijednosti iz stupca 'zupanije' iz DataFrame
objekta data i sprema ih u varijablu categories1
 values1 = data['2001'] preuzima vrijednosti iz stupca '2001' iz DataFrame objekta
data i sprema ih u varijablu values1
 Isto tako i ostale varijable primaju vrijednosti iz stupca koji je određen unutar uglatih
zagrada
Zatim smo morali odrediti figuru s obzirom na broj grafova ali samo kod stupčastog i tortnog
grafa
 fig, axes = plt.subplots(5, 1, sharex=True) stvara sliku s 5 podgrafa u jednom stupcu,
gdje je prvi argument 5 broj redaka (podgrafa) i drugi argument 1 broj stupaca
(podgrafa)
Kod linijskog grafa linije smo stvorili tako što smo koristili plt.plot(x, y1, label='2001.
godina') koji crta liniju na prvom podgrafu koristeći podatke iz varijabli x i y1. Varijabla x
predstavlja nazive županija, a y1 sadrži podatke za godinu 2001. Te argument label='2001.
godina' postavlja oznaku za liniju koja će se koristiti u legendi grafike. Slično tome, ostale
linije koda crtaju linije na preostalim podgrafima koristeći odgovarajuće podatke za godine
2006., 2011., 2016. i 2021.

A kod stupčastog i tortnog grafa koristili axes.pie ili axes.bar ovisno o tome koji graf smo
htjeli nacrtati. Metodu pie() smo koristili za stvaranje kružnih dijagrama na svakom od 5
podgrafa na slici. axes[0].pie(sizes1, labels=labels1, autopct=None) stvara kružni dijagram
na prvom podgrafu koristeći podatke iz varijabli sizes1 i labels1. Varijabla sizes1 sadrži
veličine, a labels1 sadrži nazive za svaki dio kružnog dijagrama. Opcionalni argument
autopct=None označava da se ne prikazuje postotak udjela za svaki dio dijagrama. Slično
tome, ostale linije koda stvaraju kružne dijagrame na preostalim osima. Svakom dijagramu je
dodijeljen naslov pomoću metode set_title(). Slično tako smo koristili metodu bar() za
stvaranje stupičastih grafova na svakom od 5 podgrafa na slici.Slično kao i pie kod
axes[0].bar(categories1, values1) stvara stupičasti dijagram na prvoj osi koristeći podatke iz
varijabli categories1 i values1. Varijabla categories1 sadrži nazive županija, a values1 sadrži
broj stanovnika za određenu godinu. Isto tako i ostale linije koda stvaraju stupčaste
dijagrame koje imaju svoj naslov koji je postavljen pomoću metode 'set_title'. Na zadnjem
podgrafu se postavljaju oznake osi x i y pomoću metoda set_xlabel() i set_ylabel().
Na kraju nam preostaje prikaz grafova koji se prikazuju naredbom 'plt_show'.

Slika 1: Mathplolib - stupčasti graf

Slika 2: Mathplolib - tortni graf


Slika 3: Mathplolib - linijski graf

2.2. Seaborn

Prvo smo importali biblioteke


 import pandas as pd omogućava pristup funkcijama i metodama iz biblioteke
Pandas, koja se koristi za manipulaciju i analizu podataka
 import seaborn as sns omogućava pristup funkcijama i metodama iz biblioteke
Seaborn, koja pruža napredne funkcionalnosti za vizualizaciju podataka
 import matplotlib.pyplot as plt omogućava pristup funkcijama i metodama iz
biblioteke Matplotlib, koja se koristi za vizualizaciju podataka kod alata Seaborn
Zatim smo ponovno istom metodom kao i prije učitali podatke iz CSV filea u Panda
Dataframe. Nakon toga, sns.set(style="ticks") postavlja stil grafika na "ticks" u Seaborn
biblioteci. Ovaj stil može utjecati na izgled grafova koji će biti crtani kasnije. Za stvaranje
grafova koristimo funkcije scatterplot ili lineplot ovisno o tome koju vrstu grafa želimo. Za
crtanje raspršenog grafa koristi se scatterplot() funkcija, a za crtanje linijskog grafa korsti
funkciju lineplot(). sns.scatterplot(x='zupanije', y='2001', data=data) crta raspršeni graf s osi
x označenom s 'zupanije' i osi y označenom s '2001', koristeći podatke iz DataFrame objekta
data. Ova funkcija stvara točke na grafu, prikazujući raspored vrijednosti između dvije
varijable. Funkcija lineplot() se impolimentira isto kao i scatterplot, odnosno sns.lineplot
(x='zupanije', y='2001', data=data).
Zatim smo dodali opis grafova
 plt.title('Broj stanovnika po zupanijama u 2001. godini') postavlja naslov grafa
 plt.xlabel('Zupanije') postavlja oznaku na x-osi na "Županije"
 plt.ylabel('Broj stanovnika') postavlja oznaku na y-osi na "Broj stanovnika"
Nakon toga, plt.show() prikazuje graf s postavljenim naslovom i oznakama osi.

Slika 4: Seaborn linijski graf


Slika 5: Seaborn - točkasti graf

2.3. Tableau

Slika 6: Tableau - točkasti graf


Slika 7: Tableau - stupčasti graf

3. Zaključak

Pomoću od projekta uspjeli smo vidjeti kako vizualizacija podataka pomoću biblioteka
Matplotlib, Seaborn i Tableau pruža različite pristupe i mogućnosti za prikazivanje i analizu
podataka. Korištenje Matplotlib biblioteke omogućava detaljnu kontrolu nad izgledom
grafova. Mogu se stvoriti različite vrste grafova poput stupčastih, linijskih i mnoge druge.
Matplotlib pruža fleksibilnost za prilagođavanje izgleda grafova, dodavanje oznaka osi,
naslova, legendi i drugih elemenata. Seaborn biblioteka, s druge strane, omogućava bržu i
jednostavniju izradu atraktivnih grafova. Seaborn sadrži niz unaprijed definiranih stilova i
paleta boja koji poboljšavaju vizualni dojam grafova. Također, Seaborn nudi jednostavne
funkcije za crtanje složenijih grafova. Tableau je moćan alat za vizualizaciju podataka koji
nudi intuitivno sučelje za stvaranje interaktivnih vizualizacija. Omogućuje brzo povezivanje s
različitim izvorima podataka i lako organiziranje i prikazivanje podataka u obliku grafikona.
Tableau također pruža napredne mogućnosti za filtriranje, grupiranje i izračune na podacima.
Odabir između Matplotliba, Seaborna i Tableaua ovisi o specifičnim potrebama i ciljevima
analize i vizualizacije podataka. Matplotlib pruža kontrolu i prilagodljivost, Seaborn nudi brze
i atraktivne vizualizacije, dok Tableau olakšava stvaranje interaktivnih vizualizacija i dijeljenje
rezultata. Svi ovi alati imaju svoje prednosti i odabir ovisi o potrebama i zahtjevima korisnika

You might also like