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

3. час: Боје и приказивање низова података

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

  1. још један начин да премешташ ћелије унутар Џупајтер радне свеске;
  2. како да приказујеш графиконе у разним бојама; и
  3. како да приказујеш податке хистограмима.

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

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

  • дугме Run које извршава ћелију,
  • дугме које личи на дискету помоћу кога можемо да снимимо радну свеску,
  • дугме са знаком + које додаје нову ћелију испод активне ћелије и
  • стрелице на горе и на доле које померају радну ћелију за једно место горе или доле.

Следећа три дугмета:

Још три дугмета

омогућују да се са ћелијама обављају стандардне операције које се на енглеском зову cut (исеци, дугме "маказе"), copy (ископирај, дугме "два листа папира") и paste (залепи, дугме "лист папира који се додаје на радну подлогу").

Ако желиш да преместиш неку ћелију:

  1. кликни на ту ћелију,
  2. кликни на дугме cut (дугме "маказе"),
  3. кликни на неко друго место у Џупајтер радној свесци, и
  4. кликни на дугме paste (дугме "лист папира који се додаје на радну подлогу").

Ова операција се кратко зове cut/paste.

Ако желиш да ископираш неку ћелију:

  1. кликни на ту ћелију,
  2. кликни на дугме copy (дугме "два листа папира")
  3. кликни на неко друго место у Џупајтер радној свесци, и
  4. кликни на дугме paste (дугме "лист папира који се додаје на радну подлогу").

Ова операција се кратко зове copy/paste.

3.2. Боје на графиконима

Подсетимо се графикона са максималним и минималним температурама по месецима које су забележене у Сјеници у периоду 1981-2010. године. (Подаци су преузети са сајта Републичког хидрометеоролошког завода и доступни су на адреси http://www.hidmet.gov.rs/latin/meteorologija/stanica_sr.php?moss_id=13369).

Прво смо направили три низа података: списак имена месеци, списак на максималним температурама у наведеном периоду и списак са минималним температурама у наведеном периоду.

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

Потом смо увезли целу библиотеку за цртање графикона и дали јој скраћено име plt:

In [2]:
import matplotlib.pyplot as plt

И на крају смо приказали ова два низа података: свака plot наредба је додала по један низ података на графикон, додали смо наслов графикона (функција title), ознаку на $y$-оси (функција ylabel) и приказали графикон (функција show). Функција close завршава рад на графикону:

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

Уколико желимо да графикон који приказује максималне температуре буде приказан црвеном бојом, а графикон који приказује минималне температуре плавом, можемо у функцији plot да додамо информацију о боји, овако:

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

Енглеска реч color значи "боја". Прва plot наредба исцртава график црвеном бојом ("r" = red = црвено), а друга плавом ("b" = blue = плаво). Можемо користити следеће боје:

Слово Боја (енг) Боја (српски)
"b" blue плава
"g" green зелена
"r" red црвена
"c" cyan светло плава
"m" magenta роза
"y" yellow жута
"k" black црна
"w" white бела

3.3. Хистограми

У ситуацијама када података нема много, згодно их је приказати низом стубића. Такви дијаграми се зову хистограми или стубичасти дијаграми (на енглеском bar charts).

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

In [5]:
predmeti = ["мат", "срп", "лик", "ист", "физ", "муз", "тио"]
ocene    = [2,     4,     5,     3,     5,     4,     5    ]

Ове податке можемо представити хистограмом позивом функције bar (зато што се ова врста дијаграма на енглеском зове bar chart):

In [6]:
plt.bar(predmeti, ocene)
plt.title("Оцене на полугодишту")
plt.show()
plt.close()

Уколико желиш да повећаш димензије графикона можеш користити функцију figure са параметром figuresize (енглеска реч figure значи "илустрација, приказ", док енглеска реч size значи "величина"):

In [7]:
plt.figure(figsize=(10,5))
plt.bar(predmeti, ocene)
plt.title("Оцене на полугодишту")
plt.show()
plt.close()

Могуће је на истом графикону једну групу података приказати линијом, а другу хистограмом, како је то показано у следећем примеру.

У наредној ћелији налазе се подаци о броју редовних корисника рачунара (у процентима) и броју редовних корисника интернета (у процентима) према старосним групама за 2006. годину. (Подаци су преузети са сајта Републичког завода за статистику (http://www.stat.gov.rs/).)

In [8]:
starosneGrupe      = ["16-24", "25-34", "35-44", "45-54", "55-64", "65-74"]
korisniciRacunara  = [77.8,    43.6,    45.5,    34.8,    13.0,    3.5]
korisniciInterneta = [58.3,    35.4,    30.0,    22.0,    8.0,     2.3]

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

In [9]:
plt.bar(starosneGrupe, korisniciRacunara, color = "g")
plt.plot(starosneGrupe, korisniciInterneta, color = "b")
plt.title("Проценат редовних корисника рачунара и редовних корисника интернета\nза 2006. годину, по старосним групама")
plt.xlabel("Старосне групе")
plt.ylabel("Проценат (%)")
plt.show()
plt.close()

Функције xlabel и ylabel додају појашњења ознака на $x$-оси, односно на $y$-оси.

За некога ко је само бацио поглед на дијаграм и није пажљиво читао текст пре њега није сасвим јасно који подаци су представљени зеленим стубићима, а који плавом линијом. Зато се дијаграму може додати легенда којом се дају додатна објашњења (шта је представљено плавом, а шта зеленом бојом).

Прво ћемо и команди bar и команди plot додати још по један параметар облика label="објашњење" који укратко описује податке приказане на том делу дијаграма. Функција legend потом црта легенду на дијаграму.

In [10]:
plt.bar(starosneGrupe, korisniciRacunara, color = "g", label="корисници рачунара(%)")
plt.plot(starosneGrupe, korisniciInterneta, color = "b", label="корисници интернета (%)")
plt.title("Проценат редовних корисника рачунара и редовних корисника интернета\nза 2006. годину, по старосним групама")
plt.xlabel("Старосне групе")
plt.ylabel("Проценат (%)")
plt.legend()
plt.show()
plt.close()

3.4. Задаци

Задатке реши у Џупајтеру.

Задатак 1.

(а) Шта ће се десити ако у последњем примеру командама plot и bar замениш место? Пробај да претпоставиш шта је одговор имајући у виду да Пајтон црта објекте оним редом којим наилази на команде за цртање.

(б) Да ли је редослед навођења команди битан приликом креирања дијаграма?

Задатак 2. Прикажи хистограмом своје оцене на полугодишту (или на крају прошле године).

Задатак 3. У следећој табели су приказане највише и најниже температуре (у Целзијусима) икада измерене на континентима:

Континент: Европа Азија Африка Северна Америка Јужна Америка Аустралија Антарктик
Највиша забележена темп: 48 54 55 56.7 48.9 50.7 19.8
Најнижа забележена темп: -58.1 -67.8 -23.9 -63 -32.8 -23 -89.2

Прикажи оба низа података хистограмима на истом графикону. Нека максималне температуре буду представљене црвеним стубићима, а минималне плавим. (Подаци су преузети са странице https://www.space.com/17816-earth-temperature.html)

Задатак 4.

(а) Пронађи на Интернету шта ради функција barh из библиотеке matplotlib.

(б) Ако у решењу претходног задатка уместо функције bar употребиш функцију barh на оба места, какав ћеш графикон добити?