2. час: Записивање и приказивање низова података¶
На овом часу ћеш научити:
- како да се крећеш кроз Џупајтер радну свеску;
- како се записују низови података; и
- један начин за приказивање низова података.
2.1. Још мало о Џупајтер радној свесци¶
Џупајтер радна свеска се састоји из низа ћелија, а свака ћелија може да садржи текст, математички израз или низ Пајтон наредби. Низ икона при врху стране ти омогућује да бараташ ћелијама Џупајтер радне свеске на разне начине.
Дугме Run смо већ користили. Погледајмо сада чему служе још четири дугмета:
- Клик на дугме које личи на дискету (прва слева) ће снимити радну свеску.
- Клик на дугме са знаком + ће додати нову ћелију испод активне ћелије. (Ћелију активираш тако што кликнеш на њу; активна ћелија има ***зелени*** или ***плави*** оквир.)
- Стрелице на горе и на доле померају радну ћелију за једно место горе или доле.
На пример, читаш овај текст и одједном осетиш снажну жељу да израчунаш вредност израза 1+12+13+14+15+16+17. Тада треба да кликнеш на ову ћелију (коју управо читаш) и онда на дугме са знаком +. У новој ћелији која ће се појавити испод можеш да унесеш израз, а Пајтон ће га израчунати:
1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7
2.2. Записивање низова података¶
Низови података се у Пајтону записују унутар угластих заграда, у облику листе. На пример, оцене неког ученика из једног предмета могу да се запишу као низ овако:
ocene = [2, 4, 5, 3, 5]
Систем није вратио никакав излаз, наравно. Он је само констатовао да променљива ocene
сада садржи низ који се састоји од пет бројева. Да бисмо се уверили да је то тако, затражићемо од система да израчуна следећи израз:
ocene
Могуће је радити и са низовима стрингова:
predmeti = ["математика", "српски", "ликовно", "историја", "физичко"]
Систем ни овај пут није вратио никакав излаз, већ је само запамтио да променљива predmeti
сада садржи низ од пет стрингова (имена предмета). Ево садржаја променљиве predmeti
:
predmeti
Дужину низа можемо добити позивом уграђене функције len
(што је скраћеница енглеске речи length која значи "дужина"):
len(predmeti)
2.3. Приказивање низова података¶
Сјеница је један од најхладнијих градова у Србији. У ћелији испод налазе се три низа података: списак имена месеци и потом максималне и минималне температуре по месецима које су забележене у Сјеници у периоду 1981-2010. године.
meseci = ["Јан", "Феб", "Мар", "Апр", "Мај", "Јун", "Јул", "Авг", "Сеп", "Окт", "Нов", "Дец"]
SjenicaMaxPoMesecima = [ 14.0, 19.4, 21.9, 24.3, 28.8, 31.5, 33.5, 32.8, 29.7, 26.5, 20.2, 18.0]
SjenicaMinPoMesecima = [-35.6, -31.0, -25.0, -8.3, -6.4, -3.7, -0.4, -1.3, -9.3, -10.7, -26.2, -29.6]
(Подаци су преузети са сајта Републичког хидрометеоролошког завода и доступни су на адреси http://www.hidmet.gov.rs/latin/meteorologija/stanica_sr.php?moss_id=13369)
Желели бисмо да прикажемо ове податке у виду графикона (да их визуелизујемо) зато што људи најлакше и најбрже обрађују визуелне податке. (Вероватно знаш за изреку да једна слика вреди више од хиљаду речи.)
Пајтон има разне библиотеке за визуелизацију података, а ми ћемо користити библиотеку која се зове matplotlib.pyplot
. Пошто је ово име веома дугачко и компликовано и пошто ће нам требати много функција из те библиотеке нећемо увозити функције једну по једну већ ћемо увести целу библиотеку и при томе јој дати краће име (такорећи, надимак) plt
. (Енглеска реч plot значи "исцртати", а plt
је скраћено од plot
.)
import matplotlib.pyplot as plt
Сада су нам све функције из ове библиотеке доступне и можемо кренути са цртањем графикона. Најједноставнији графикон се може добити овако:
plt.plot(meseci, SjenicaMaxPoMesecima)
plt.show()
plt.close()
Функција plot(meseci, SjenicaMaxPoMesecima)
каже систему да треба нацртати графикон коме су на хоризонталну осу (x-оса) нанети подаци из низа meseci
, а на вертикалну осу (y-оса) подаци из низа SjenicaMaxPoMesecima
. Функција show
потом приказује графикон. (Енглеска реч plot значи "исцртати", а енглеска реч show значи "приказати".) Коначно, функција close
завршава рад на графикону (енглеска реч close значи "затвори").
Пошто нисмо увозили појединачне функције већ смо целу библиотеку увезли под надимком plt
, функције plot
и show
морамо да позовемо "пуним презименом и именом": plt.plot
и plt.show
.
У наредном кораку ћемо графикону додати наслов користећи функцију title
(енглеска реч title значи "наслов"):
plt.plot(meseci, SjenicaMaxPoMesecima)
plt.title("Максималне температуре у Сјеници по месецима\n(у периоду 1981-2010)")
plt.show()
plt.close()
Можемо ставити ознаку и на вертикалну осу да бисмо нагласили да се ради о температурама у Целзијусима. За то користимо функцију ylabel
("ознака на y-оси"; енглеска реч label значи "ознака"):
plt.plot(meseci, SjenicaMaxPoMesecima)
plt.title("Максималне температуре у Сјеници по месецима\n(у периоду 1981-2010)")
plt.ylabel("Температура (у Целзијусима)")
plt.show()
plt.close()
На крају ћемо на исти графикон додати и податке за минималне температуре по месецима (и променити наслов графикона, наравно):
plt.plot(meseci, SjenicaMaxPoMesecima)
plt.plot(meseci, SjenicaMinPoMesecima)
plt.title("Минималне и максималне температуре у Сјеници по месецима\n(у периоду 1981-2010)")
plt.ylabel("Температура (у Целзијусима)")
plt.show()
plt.close()
Да закључимо: функцијама plot
, title
и ylabel
додајемо податке на графикон, и тек када смо унели све податке које желимо да имамо на графикону цртамо графикон позивом функције show
.
2.4. Задаци¶
Задатке реши у Џупајтеру.
Задатак 1. Биолози су до данас описали око два милиона врста живих бића. Сва она су подељена у пет царстава. Њихов приближан број по царствима је дат следећом табелом:
Царство | Број врста |
---|---|
Животиње | 1.400.000 |
Биљке | 290.000 |
Гљиве | 100.000 |
Протисти | 200.000 |
Монере | 10.000 |
Прикажи ове податке графиконом.
Задатак 2. У наредној ћелији дати су подаци о тежини (у килограмима) и дужини/висини (у центиметрима) једног дечака од његовог шестог месеца па до његових 6,5 година. Прикажи ове податке графиконом.
merenja = ["6 мес", "1,5 год", "2,5 год", "3,5 год", "4,5 год", "5,5 год", "6,5 год"]
masaKG = [5.9, 11.5, 14.8, 20.5, 22.0, 24.2, 29.0 ]
visinaCM = [62.0, 84.0, 97.0, 115.0, 122.5, 131.5, 135.0 ]
Задатак 3. У следећој ћелији налазе се подаци преузети са сајта Републичког завода за статистику (http://www.stat.gov.rs/) који показују како се у периоду од 2008. до 2017. године мењао проценат броја становника Србије који никада нису користили рачунар, проценат броја становника Србије који редовно користе рачунар и проценат броја становника Србије који понекад користе рачунар. Прикажи ове податке графиконом.
godina = [2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017]
procenatNeKoristiRac = [48, 44.7, 43.7, 40.1, 38.9, 36.6, 29.7, 28.7, 27.2, 26.1]
procenatRedovnoKoristiRac = [45.5, 49.3, 50.8, 54.3, 55, 56.9, 62.5, 65.8, 67.2, 67.7]
procenatPonekadKoristiRac = [6.5, 6.0, 5.5, 5.6, 6.1, 6.5, 7.8, 5.5, 5.6, 6.2]
Задатак 4. На сајту Републичког хидрометеоролошког завода (http://www.hidmet.gov.rs/) у менију са леве стране кликни на "Метеорологија", па "Климатологија", па на "Нормале". Потом у списку станица за осматрање који се појавио одабери станицу најближу твојој школи, преузми најниже и највише температуре у периоду 1981-2010 (редови "Апсолутни максимум" и "Апсолутни минимум") и прикажи те податке на једном графикону. Ученици из Сјенице нека одаберу град по жељи!