$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

LJ05

5. Frekvencijska analiza i sektorski dijagrami

U ovoj lekciji ćeš naučiti:

  1. kako da izvršiš frekvencijsku analizu niza podataka (što je jedno komplikovano ime za jednu veoma jednostavnu i korisnu stvar); i
  2. kako da prikažeš zastupljenost nekih veličina na sektorskom dijagramu.

5.1. Frekvencijska analiza niza podataka

Frekvencijska analiza niza podataka se svodi na to da se prebroje podaci u nizu i da se na osnovu tako dobijenih frekvencija podataka pokuša doći do nekog zaključka (reč frekvencija znači "učestalost"). Na primer, u jednom razredu ima 30 učenika i njihove ocene iz informatike su date u sledećem nizu:

In [1]:
oceneInf = [3, 4, 5, 4, 5, 3, 4, 5, 2, 4, 5, 4, 5, 4, 2, 3, 1, 4, 5, 4, 3, 2, 3, 4, 5, 4, 5, 5, 4, 3]

Frekvencijska analiza ovog niza se svodi na to da se utvrdi koliko ima petica, četvorki, trojki, dvojki i jedinica u tom razredu. Umesto da to uradimo ručno (recimo, da napravimo tabelicu pa da "lupamo recke"), pustićemo Pajton da to uradi za nas. Pajton ima ugrađenu funkciju count koja može da prebroji koliko puta se u nekoj listi javlja neki element:

In [2]:
ocena5 = oceneInf.count(5)
ocena4 = oceneInf.count(4)
ocena3 = oceneInf.count(3)
ocena2 = oceneInf.count(2)
ocena1 = oceneInf.count(1)
print("Ocene u razredu su raspodeljene kako sledi:")
print("Ocenu 5 ima", ocena5, "ucenika")
print("Ocenu 4 ima", ocena4, "ucenika")
print("Ocenu 3 ima", ocena3, "ucenika")
print("Ocenu 2 ima", ocena2, "ucenika")
print("Ocenu 1 ima", ocena1, "ucenika")
Ocene u razredu su raspodeljene kako sledi:
Ocenu 5 ima 9 ucenika
Ocenu 4 ima 11 ucenika
Ocenu 3 ima 6 ucenika
Ocenu 2 ima 3 ucenika
Ocenu 1 ima 1 ucenika

Za svaku ocenu smo odredili koliko se puta pojavila u listi i dobili smo podatke u apsolutnim iznosima.

Ako želimo da odredimo relativne odnose brojeva ocena, dobijene brojeve ćemo iskazati u procentima:

In [3]:
ukupno = len(oceneInf)
procenat5 = 100.0 * ocena5 / ukupno
procenat4 = 100.0 * ocena4 / ukupno
procenat3 = 100.0 * ocena3 / ukupno
procenat2 = 100.0 * ocena2 / ukupno
procenat1 = 100.0 * ocena1 / ukupno
print("Ocene u razredu su raspodeljene kako sledi:")
print("Ocenu 5 ima ", round(procenat5, 2), "% ucenika", sep="")
print("Ocenu 4 ima ", round(procenat4, 2), "% ucenika", sep="")
print("Ocenu 3 ima ", round(procenat3, 2), "% ucenika", sep="")
print("Ocenu 2 ima ", round(procenat2, 2), "% ucenika", sep="")
print("Ocenu 1 ima ", round(procenat1, 2), "% ucenika", sep="")
Ocene u razredu su raspodeljene kako sledi:
Ocenu 5 ima 30.0% ucenika
Ocenu 4 ima 36.67% ucenika
Ocenu 3 ima 20.0% ucenika
Ocenu 2 ima 10.0% ucenika
Ocenu 1 ima 3.33% ucenika

Dakle, frekvencijska analiza nam daje vrednosti u konkretnom iznosu (recimo, u razredu ima 9 petica, 11 četvorki i tako dalje). Ako ove podatke predstavimo procentima dobijamo podatke koji nam govore o zastupljenosti ocena u relativnim odnosima.

Tako, u ovom razredu ima 30% petica (9 / 30 = 30%), 36,67% četvorki (11 / 30 = 36,67%), 20% trojki (6 / 30 = 20%), 10% dvojki (3 / 30 = 10%) i 3,33% jedinica (1 / 30 = 3,33%).

5.2. Sektorski dijagrami

U situacijama kada se prikazuje koliko procenata koje komponente učestvuje u sastavu neke celine pogodno je podatke prikazati sektorskim dijagramom koji predstavlja krug isečen na isečke poput pice. Krug tada predstavlja celinu (100%), dok isečci predstavljaju komponente koje učestvuju u celini iskazane u procentima.

Na primer, ocene iz informatike su u jednom razredu sa 30 učenika raspodeljene ovako:

Ocena Zastupljenost ocene
5 9
4 11
3 6
2 3
1 1

Podatke iz ove tabele ćemo ilustrovati sektorskim dijagramom. Prvo ćemo uvesti biblioteku:

In [4]:
import matplotlib.pyplot as plt

Onda ćemo podatke zapisati pomoću dva niza ovako:

In [5]:
frekvencije = [9,   11,  6,   3,   1]
ocene       = ["5", "4", "3", "2", "1"]

I sada možemo da pređemo na predstavljanje podataka dijagramom. Funkcija koja podatke predstavlja sektorskim dijagramom se zove pie zato što se u američkom slengu sektorski dijagrami zovu pie charts = "tortasti dijagrami". Prvi argument predstavlja niz vrednosti, dok se drugim zadaju oznake (engl. label = oznaka:):

In [6]:
plt.figure(figsize=(6,6))
plt.pie(frekvencije, labels=ocene)
plt.title("Ocene iz informatike")
plt.show()
plt.close()

Ako želimo da naglasimo broj petica u razredu možemo odgovarajući sektor da "izmaknemo" malo iz središta. To se postiže argumentom explode funkcije pie koji za svaki podatak u nizu kaže koliko treba da ga izmaknemo iz središta (0 = ne treba izmestiti sektor iz središta dijagrama; što je veći broj, to je i izmeštanje veće).

In [7]:
frekvencije = [9,   11,  6,   3,   1]
ocene       = ["5", "4", "3", "2", "1"]
izmestanje  = [0.1, 0,   0,   0,   0]
plt.figure(figsize=(6,6))
plt.pie(frekvencije, labels=ocene, explode=izmestanje)
plt.title("Ocene iz informatike")
plt.show()
plt.close()

Kao drugi primer posmatrajmo strukturu naše atmosfere. Naša atmosfera je smeša raznih gasova, a suv vazduh ima sledeći sastav:

Gas Zastupljenost (%)
Azot 78,08
Kiseonik 20,94
Argon 0,93
Ugljen dioksid 0,05

Važno je napomenuti da ovo nije tačan sastav naše atmosfere: u njoj ima i drugih gasova, ali u tragovima (kako to hemičari vole da kažu) pa oni nisu prikazani u tabeli.

Strukturu atmosfere ćemo predstaviti sektorskim dijagramom ovako:

In [8]:
procenti = [78.08,  20.94,      0.93,    0.05]
oznake   = ["Azot", "Kiseonik", "Argon", "Ugljen dioksid"]
plt.figure(figsize=(7,7))
plt.pie(procenti, labels=oznake)
plt.title("Sastav naše atmosfere")
plt.show()
plt.close()

Opet nailazimo na problem: oznake za poslednja dva podatka su se preklopile jer se radi o veoma uskom sektorima. Da bismo rešili problem možemo još više da povećamo dijagram, a možemo probati i da poslednja dva "mala" sektora "izmaknemo" iz središta, ovako:

In [9]:
procenti   = [78.08,  20.94,      0.93,    0.05]
oznake     = ["Azot", "Kiseonik", "Argon", "Ugljen dioksid"]
izmestanje = [0,      0,          0.75,    0.75]
plt.figure(figsize=(7,7))
plt.pie(procenti, labels=oznake, explode=izmestanje)
plt.title("Sastav naše atmosfere")
plt.show()
plt.close()

5.3. Zadaci

Zadatke reši u Džupajteru.

Zadatak 1. Broj stanovnika naše planete po kontinentima se procenjuje ovako:

Kontinent Broj stanovnika
Azija 4.584.807.072
Afrika 1.320.038.716
Evropa 743.102.600
Južna Amerika 658.305.557
Severna Amerika 366.496.802
Okeanija 41.826.176

Izraziti broj stanovnika po kontinentima u procentima i ilustrovati podatke sektorskim dijagramom

Zadatak 2. Početkom ovog veka na tržištu optičkih medija tiho se vodio rat formata. Sa širenjem novih formata video zapisa (HD format pre svega) pojavila se potreba za optičkim medijumima većeg kapaciteta, jer na jedan klasičan DVD može da se smesti samo oko 4,5GB podataka, što nije dovoljno za jedan film u HD formatu. U finalnu bitku su ušla dva formata: Blu-ray Disc (kraće BR) i HD-DVD. Oko dve godine (skoro cela 2006. i cela 2007. godina) ova dva formata su bila približno izjednačena u tome koliki udeo tržišta obuhvataju. Onda se početkom 2008. desilo nešto neočekivano: u roku od nedelju dana se situacija drastično promenila. U tabeli ispod je pokazano učešće ova dva formata na svetskom tržištu na dan 5.1.2008. i 12.1.2008:

Datum Blu-ray Disc HD-DVD
5.1.2008. 51,17% 48,83%
12.1.2008. 92,53% 7,47%

Tako je za samo sedam dana Blu-ray format pobedio i danas je to dominantan format za skladištenje velike količine informacija na optičkim medijumima.

(a) Napravi dva nezavisna sektorska dijagrama: jedan koji pokazuje odnos ova dva formata na tržištu na dan 5.1.2008, i drugi koji pokazuje odnos ova dva formata na tržištu na dan 12.1.2008.

(b*) Probaj da nađeš na Internetu šta se to desilo između 5.1.2008. i 12.1.2008. (Ima veze sa kompanijom Sony, koja je podržavala Blu-ray format, i jednim njenim proizvodom.)

Zadatak 3. Savršena limunada se pravi ovako: jednu šolju šećera razmutiti u jednoj šolji tople vode dok se šećer potpuno ne rastopi. Sipati u to jednu šolju soka od limuna i dodati još tri šolje hladne vode. Izračunati u procentima količinu vode, šećera i soka od limuna u savršenoj limunadi i prikazati te podatke sektorskim dijagramom, ali tako da podatak koji predstavlja količinu šećera bude izdvojen.

Zadatak 4. Izabel je, gledajući kako pada kiša u Makondu, odlučila da cele jedne godine vodi meteorološki dnevnik. Kadgod bi kiša pala u ponedeljak u dnevnik bi upisala 1; ako bi kiša pala u utorak u dnevnik bi upisala 2; za sredu bi upisala 3 i tako redom do nedelje (za kišovite nedelje u dnevnik bi upisivala 7). Tako je dobila sledeći niz brojeva:

In [10]:
IzabelinDnevnik = [1,2,4,7,2,4,7,6,7,5,6,7,3,5,7,1,3,6,2,3,4,2,3,1,4,7,7,
                   6,5,6,4,5,6,2,3,4,5,1,3,4,2,5,7,2,3,5,3,5,7,6,7,2,3,7,
                   1,2,3,4,5,6,7,2,7,3,4,1,5,6,1,2,4,5,6,7,1,3,4,1,2,3,4,
                   2,5,7,6,4,5,6,1,3,7,5,7,1,2,3,7,7,3,4,7,1,2,4,7,4,7,2,
                   3,4,4,6,8,1,7,7,7,3,4,5,6,7,1,2,4,7,1,2,3,1,7,2,7]

(a) Koliko kišnih dana je Izabel upisala u svoj dnevnik?

(b) Iskaži broj kišnih dana u procentima, ako znaš da ta godina nije bila prestupna.

(v) Utvrdi koliko je Izabel registrovala kišnih ponedeljaka, utoraka, sreda, četvrtaka, petaka i subota u toj godini.

(g) Iskaži u procentima broj kišnih ponedeljaka u odnosu na broj svih ponedeljaka u toj godini, kojih je bilo 53.

(d) Utvrdi najkišniji dan u nedelji u Izabelinom dnevniku i prikaži podatke dobijene pod (v) sektorskim dijagramom. Izdvoj u dijagramu najkišniji dan.

Zadatak 5. U ćeliji ispod nalazi se prvih nekoliko decimala broja $\pi$:

In [11]:
pi_decimale="141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571459102897064140110971206280439039759515677157700420337869936007230558763176359421873125147120532928191826186125867321579198414848829164470609575270695722091756711672291098169091528017350671274858322287183520935396572512108357915136988209144421006751033467110314126711136990865851639831501970165151168517143765761835155650884909989859982387345528331635507647918535893226185489632132933089857064204675259070915481416549859461637180270981994309924488957571282890592323326097299712084433573265489382391193259746366730583604142813883032038249037589852437441702913276561809377344403070746921120191302033038019762110110044929321516084244485963766983895228684783123552658213144957685726243344189303968642624341077322697802807318915441101044682325271620105265227211166039666557309254711055785376346682065310989652691862056476931"

(a) Utvrdi koliko decimala broja $\pi$ je navedeno u stringu. (Funkcija len ti može koristiti.)

(b) Napravi frekvencijsku analizu ovog stringa tako što ćeš utvrditi koliko u njemu ima nula, jedinica, dvojki, ...., devetki. (Funkcija count se može primeniti i na stringove; recimo

pi_decimale.count("0")

će utvrditi broj nula. Obrati pažnju na to da je nula pod navodnicima, jer se radi sa stringovima!)

(v) Predstavi broj nula, jedinica, dvojki, ..., devetki koje si dobio pod (b) u procentima.

(g) Prikaži dobijene podatke sektorskim dijagramom.

In [ ]:
 
© 2019 Petlja.org Creative Commons License