$$ \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.

2. час: Записивање и приказивање низова података

На овом часу ћеш научити:

  1. како да се крећеш кроз Џупајтер радну свеску;
  2. како се записују низови података; и
  3. један начин за приказивање низова података.

2.1. Још мало о Џупајтер радној свесци

Џупајтер радна свеска се састоји из низа ћелија, а свака ћелија може да садржи текст, математички израз или низ Пајтон наредби. Низ икона при врху стране ти омогућује да бараташ ћелијама Џупајтер радне свеске на разне начине.

Дугме Run смо већ користили. Погледајмо сада чему служе још четири дугмета:

Четири дугмета

  • Клик на дугме које личи на дискету (прва слева) ће снимити радну свеску.
  • Клик на дугме са знаком + ће додати нову ћелију испод активне ћелије. (Ћелију активираш тако што кликнеш на њу; активна ћелија има ***зелени*** или ***плави*** оквир.)
  • Стрелице на горе и на доле померају радну ћелију за једно место горе или доле.

На пример, читаш овај текст и одједном осетиш снажну жељу да израчунаш вредност израза $1 + \frac 12 + \frac 13 + \frac 14 + \frac 15 + \frac 16 + \frac 17$. Тада треба да кликнеш на ову ћелију (коју управо читаш) и онда на дугме са знаком +. У новој ћелији која ће се појавити испод можеш да унесеш израз, а Пајтон ће га израчунати:

In [1]:
1 + 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7
Out[1]:
2.5928571428571425

2.2. Записивање низова података

Низови података се у Пајтону записују унутар угластих заграда, у облику листе. На пример, оцене неког ученика из једног предмета могу да се запишу као низ овако:

In [2]:
ocene = [2, 4, 5, 3, 5]

Систем није вратио никакав излаз, наравно. Он је само констатовао да променљива ocene сада садржи низ који се састоји од пет бројева. Да бисмо се уверили да је то тако, затражићемо од система да израчуна следећи израз:

In [3]:
ocene
Out[3]:
[2, 4, 5, 3, 5]

Могуће је радити и са низовима стрингова:

In [4]:
predmeti = ["математика", "српски", "ликовно", "историја", "физичко"]

Систем ни овај пут није вратио никакав излаз, већ је само запамтио да променљива predmeti сада садржи низ од пет стрингова (имена предмета). Ево садржаја променљиве predmeti:

In [5]:
predmeti
Out[5]:
['математика', 'српски', 'ликовно', 'историја', 'физичко']

Дужину низа можемо добити позивом уграђене функције len (што је скраћеница енглеске речи length која значи "дужина"):

In [6]:
len(predmeti)
Out[6]:
5

2.3. Приказивање низова података

Сјеница је један од најхладнијих градова у Србији. У ћелији испод налазе се три низа података: списак имена месеци и потом максималне и минималне температуре по месецима које су забележене у Сјеници у периоду 1981-2010. године.

In [7]:
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.)

In [8]:
import matplotlib.pyplot as plt

Сада су нам све функције из ове библиотеке доступне и можемо кренути са цртањем графикона. Најједноставнији графикон се може добити овако:

In [9]:
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 значи "наслов"):

In [10]:
plt.plot(meseci, SjenicaMaxPoMesecima)
plt.title("Максималне температуре у Сјеници по месецима\n(у периоду 1981-2010)")
plt.show()
plt.close()

Можемо ставити ознаку и на вертикалну осу да бисмо нагласили да се ради о температурама у Целзијусима. За то користимо функцију ylabel ("ознака на $y$-оси"; енглеска реч label значи "ознака"):

In [11]:
plt.plot(meseci, SjenicaMaxPoMesecima)
plt.title("Максималне температуре у Сјеници по месецима\n(у периоду 1981-2010)")
plt.ylabel("Температура (у Целзијусима)")
plt.show()
plt.close()

На крају ћемо на исти графикон додати и податке за минималне температуре по месецима (и променити наслов графикона, наравно):

In [12]:
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 година. Прикажи ове податке графиконом.

In [ ]:
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. године мењао проценат броја становника Србије који никада нису користили рачунар, проценат броја становника Србије који редовно користе рачунар и проценат броја становника Србије који понекад користе рачунар. Прикажи ове податке графиконом.

In [ ]:
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 (редови "Апсолутни максимум" и "Апсолутни минимум") и прикажи те податке на једном графикону. Ученици из Сјенице нека одаберу град по жељи!