5. Analiza e frekuencës dhe grafikët pie

Në këtë leksion do të mësoni:

  1. si të kryhet një analizë e frekuencës e një sekuence të të dhënave (që është vetëm një emër i bukur për një gjë të thjeshtë); dhe
  2. si të shfaqen të dhënat në një grafik pie.

5.1. Analiza e frekuencës

Analiza e frekuencës së një sekuence vlerash konsiston në llogaritjen e sa herë secila vlerë ndodh në sekuencë. Po aq e thjeshtë sa ajo. Numrat që marrim quhen frekuenca. Sidoqoftë, kjo analizë e thjeshtë mund të sigurojë një pasqyrë të rëndësishme për problemin për të cilin ne jemi të interesuar. Përdoret madje edhe në kriptoanalizë, por kjo është shumë larg sferës së kësaj kontrolli.

Për shembull, ka 30 studentë në një klasë dhe notat e tyre të Matematikës janë:

In [1]:
marks = ["C", "B", "A", "B", "A", "C", "B", "A", "D", "B", "A", "B", "A", "B", "D", "C", "F", "B", "A", "B", "C", "D", "C", "B", "A", "B", "A", "A", "B", "C"]

Analiza e frekuencës së kësaj sekuence zvogëlohet për të llogaritur sa A ka në sekuencë, atëherë sa B, etj. Në vend që ta bëjmë atë me dorë, ne do ta lejojmë Python ta bëjë atë për ne duke përdorur funksionin e integruar count:

In [2]:
markA = marks.count("A")
markB = marks.count("B")
markC = marks.count("C")
markD = marks.count("D")
markF = marks.count("F")
print("The distribution of marks:")
print("A ->", markA)
print("B ->", markB)
print("C ->", markC)
print("D ->", markD)
print("F ->", markF)
The distribution of marks:
A -> 9
B -> 11
C -> 6
D -> 3
F -> 1

Numrat që kemi marrë në këtë mënyrë janë frekuenca të përafërta. Shpesh ne jemi të interesuar në frekuencat relative, që janë frekuenca absolute të shprehura si përqindje.

In [3]:
N = len(marks)
percentageA = 100.0 * markA / N
percentageB = 100.0 * markB / N
percentageC = 100.0 * markC / N
percentageD = 100.0 * markD / N
percentageF = 100.0 * markF / N
print("The relative distribution of marks:")
print("A -> ", round(percentageA, 2), "%", sep="")
print("B -> ", round(percentageB, 2), "%", sep="")
print("C -> ", round(percentageC, 2), "%", sep="")
print("D -> ", round(percentageD, 2), "%", sep="")
print("F -> ", round(percentageF, 2), "%", sep="")
The relative distribution of marks:
A -> 30.0%
B -> 36.67%
C -> 20.0%
D -> 10.0%
F -> 3.33%

Prandaj, analiza e frekuencës mund të sigurojë frekuenca absolute (sa herë ndodh një vlerë në sekuencë), por edhe frekuencat relative, të cilat janë frekuenca absolute të shprehura si përqindje.

5.2. Grafikët pie

Në situatat kur ne jemi të interesuar jo aq shumë për frekuencat absolute, por më shumë për frekuencat relative (d.m.th., ne nuk na intereson shumë se sa ndodhi ka, por çfarë përqindje që bën në tërësi) është i përshtatshëm për të vizualizuar të dhënat si një grafik pie. Një grafik pie është një rreth i ndarë në sektorë (si një byrek ose një pizza). Rrethi më pas përfaqëson tërësinë (100%) dhe secili sektor përfaqëson përqindjen e vlerës së caktuar për sektorin.

Për shembull, këtu është shpërndarja e notave nga shembulli i mësipërm:

Ocena Zastupljenost ocene
A 9
B 11
C 6
D 3
F 1

Le ta vizualizojmë këtë duke përdorur një grafik pie. Le të ngarkojmë së pari librarinë:

In [4]:
import matplotlib.pyplot as plt

Pastaj ne paraqesin tabelën si dy lista:

In [5]:
freqs = [9,   11,  6,   3,   1]
marks = ["A", "B", "C", "D", "F"]

Funksioni pie prodhon një tabelë pie. Argumenti i parë i pie është një listë me numrat (frekuencat, relative e absolute), ndërsa opsioni labels ofron etiketat e sektorëve:

In [6]:
plt.figure(figsize=(6,6))
plt.pie(freqs, labels=marks)
plt.title("Marks")
plt.show()
plt.close()

Nëse dëshirojmë të theksojmë numrin e A-ve në këtë klasë mund të përdorim opsionin explode i cili pret një sekuencë të numrave dhjetorë midis 0 dhe 1 i cili i tregon funksionit pie sa për të rrëshqitur sektorin larg qendrës (0 = pa rrëshqitje; sa më i madh numri, aq më i madh rrëshqitja larg qendrës).

In [7]:
freqs = [9,   11,  6,   3,   1]
marks = ["A", "B", "C", "D", "F"]
slide = [0.1,  0,   0,   0,   0]
plt.figure(figsize=(6,6))
plt.pie(freqs, labels=marks, explode=slide)
plt.title("Marks")
plt.show()
plt.close()

Si një shembull tjetër, le të hedhim një vështrim në strukturën e atmosferës sonë. Atmosfera jonë është një përzierje e shumë gazrave, por ato më dominuese janë:

Gas (%)
Nitrogen 78.08
Oxygen 20.94
Argon 0.93
Carbon dioxide 0.05

Here comes the pie chart:

In [8]:
perc = [78.08,  20.94,      0.93,    0.05]
gas  = ["Nitrogen", "Oxygen", "Argon", "Carbon dioxide"]
plt.figure(figsize=(7,7))
plt.pie(perc, labels=gas)
plt.title("The Composition of the Earth's Atmosphere")
plt.show()
plt.close()

Ne menjëherë shohim një problem: etiketat për dy sektorët e vegjël mbivendosen. Për të rregulluar se do t'i rrëshqasim duke përdorur opsionin exlopde:

In [9]:
perc  = [78.08,  20.94,      0.93,    0.05]
gas   = ["Nitrogen", "Oxygen", "Argon", "Carbon dioxide"]
slide = [0,      0,          0.75,    0.75]
plt.figure(figsize=(7,7))
plt.pie(perc, labels=gas, explode=slide)
plt.title("The Composition of the Earth's Atmosphere")
plt.show()
plt.close()

5.3. Ushtrime

Ushtrimi 1. Vizualizoni popullsinë e kontinenteve me një grafik pie:

Continent Population
Asia 4,584,807,072
Africa 1,320,038,716
Europe 743,102,600
S. America 658,305,557
N. America 366,496,802
Oceania 41,826,176

Ushtrimi 2. Midis 2006 dhe 2008 tregu i mediave optike të depozitimit ishte në fazën e formimit së lartësisë së definicionit të diskut optik war. Ndërsa HD u bë gjithnjë e më i popullarizuar, u shfaq nevoja për një disk optik me kapacitet më të madh dhe beteja përfundimtare për këtë ngrohtë të tregut u luftua midis Blu-ray Disc (BR) dhe HD-DVD. Për më shumë se dy vjet të dy formatet kishin pothuajse të barabartë me pjesën e tregut, por më pas në fillim të vitit 2008 ndodhi diçka e çuditshme - brenda një jave situata ndryshoi në mënyrë drastike. Tabela e mëposhtme përmban pjesën e tregut të të dy formateve në 5 janar 2008 dhe shtatë ditë më vonë:

Date Blu-ray Disc HD-DVD
January 5th, 2008 51,17% 48,83%
January 12th, 2008 92,53% 7,47%

Kështu që, pas dy vjet luftimesh të hidhura Blu-ray fitoi.

(a) Bëni dy tabela të pavarura pie për të vizualizuar pjesën e tregut të të dy formateve në 5 janar 2008 dhe më 12 janar 2008.

(b*) Kërkoni në Internet dhe përpiquni të gjeni atë që ndodhi në javën 5-12 janar, 2008. (Këshillë: Ka të bëjë me Sony, i cili ishte një përkrahës kryesor i Blu-ray Disc.)

Ushtrimi 3. Kështu krijoni limonadën e përsosur: vendosni një filxhan me ujë të ngrohtë dhe një filxhan sheqer në një tigan dhe përzieni derisa sheqeri të treten plotësisht; më pas shtoni një filxhan lëng limoni dhe tre gota ujë të ftohtë.

Llogaritni përqindjen e ujit, sheqerit dhe lëngut të limonit në limonadën e përsosur dhe bëni një grafik pie, në të cilën sheqeri ndahet pak nga përbërësit e tjerë.

Ushtrimi 4. Duke parë shi në Macondo, Isabel vendosi të fillojë një ditar meteorologjik. Nëse binte shi të hënën, Isabel do të shkruante 1 në ditar; nëse binte shi ditën e martë ajo do të shkruante 2 në ditar; pastaj 3 për të Mërkurat me shi dhe kështu me radhë deri në 7 për të dielat me shi. Në fund ajo mori listën e mëposhtme të numrave për një vit:

In [10]:
MeteoDiary = [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) Sa ditë me shi regjistroi Isabel?

(b) Sa të hëna, të marta dhe kështu me radhë ishin atje atë vit? Ilustroni këtë me një grafik pie.

(c) Cila ditë e javës ishte me më shumë shi?

Ushtrimi 5. Qeliza më poshtë përmban disa decimale të para të $\pi$:

In [11]:
pi_decimale="141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571459102897064140110971206280439039759515677157700420337869936007230558763176359421873125147120532928191826186125867321579198414848829164470609575270695722091756711672291098169091528017350671274858322287183520935396572512108357915136988209144421006751033467110314126711136990865851639831501970165151168517143765761835155650884909989859982387345528331635507647918535893226185489632132933089857064204675259070915481416549859461637180270981994309924488957571282890592323326097299712084433573265489382391193259746366730583604142813883032038249037589852437441702913276561809377344403070746921120191302033038019762110110044929321516084244485963766983895228684783123552658213144957685726243344189303968642624341077322697802807318915441101044682325271620105265227211166039666557309254711055785376346682065310989652691862056476931"

(a) Sa decimal $\pi$ ka në string?

(b) Bëni analizën e frekuencës së këtij vargu.

(g) Ilustroni rezultatin e analizës së frekuencës nga një tabelë pie.

© 2019 Petlja.org Creative Commons License