<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Zobrazování dat s knihovnou Matplolib
Matplotlib je knihovna napsaná v Pythonu pro vizualizování dat různými způsoby. Jedná se o nejpoužívanější knihovnu v Pythonu pro zobrazování dat. Knihovny umožňuje export obrázků v různých formátech (png, eps, pdf, ...) v kvalitě vhodné pro vědecké publikace.
Následuje import knihovny a její nastavení pro Jupyter (kreslení inline obrázků). Knihovna Numpy je importována také, pro snadné generování syntetických (umělých) dat.
Step1:  Kreslení bodů a řad
Nejčastější případ zobrazování dat v technických aplikacích je asi spojnicový a bodový (scatter) graf.
Minimální příklady
Následují dva minimalistické příklady, pro pochopení jak používat Matplotlib. V těchto příkladech schválně není nic navíc, aby bylo evidentní jaké příkazy slouží k samotnému kreslení dat.
Step2:  Popisky, legenda, titulek, velikost, rozsah, mřížka
Následuje komplexní příklad, v kterém je demonstrováno jak nastavit/doplnit do grafu všechny podstatné náležitosti.
Step3:  Styl značek, spojnic
Další příklad demonstruje jak nastavovat vzhled značkek a spojnic. Všimněte si zadávání barvy a tvaru markeru
Step4:  Ostatní druhy grafů
Mimo spojnicových a bodových grafů existují ještě různé další způsoby zobrazení dat. Několik populárních způsobů je ukázáno na následujících příkladech.
Sloupcový graf
Následuje příklad sloupcového grafu.
Step5:  Histogram
Histogram je sloupcový graf, který zobrazuje četnost výskytu nějaké hodnoty v datech. Je to velice častý způsob analýzy dat. Z tohoto důvodu je v Matplotlibu připravena vlastní funkce, která rovnou kreslí výsledek analýzy.
Step6:  Boxplot
Boxplot - krabicový graf je nástroj pro zjednodušené zobrazení rozložení hodnot v nějakém výběru. Jeden box představuje jednu sadu dat (skupinu, vzorek). Následuje příklad - srovnání dvou skupin - x, y.
Step7:  Koláčový graf
Koláčové grafy jsou tak známé, že je není třeba více představovat. Následuje příklad.
Step8:  Více grafů v jednom okně
Často je požadavek na zobrazení více grafů pohromadě ve skupině. Aby uživatel nemusel obrázky skládat ručně, Matplotlib dokáže grafy uspořádat sám podle instrukcí.
Pozice do které se má kreslit (subplot) v sestavě grafů je určena třemi čísly. První číslo představuje počet řádků v sestavě, durhé číslo představuje počet sloupců v sestavě a poslední číslo pořadí dané pozici v sestavě.
Následuje jednoduchý příklad - dva sloupce, jeden řádek.
Step9:  Následuje příklad, který využívá postupné změny počtu řádků a sloupců k tomu aby vytvořil složitější sestavu.
Step10:  Poznámka
<ASSISTANT_TASK:>
Python Code:
# inline plots 
%matplotlib inline 
# import matplotlib as plt acronym
import matplotlib.pylab as plt
# import numpy as np acronym
import numpy as np
Explanation: Zobrazování dat s knihovnou Matplolib
Matplotlib je knihovna napsaná v Pythonu pro vizualizování dat různými způsoby. Jedná se o nejpoužívanější knihovnu v Pythonu pro zobrazování dat. Knihovny umožňuje export obrázků v různých formátech (png, eps, pdf, ...) v kvalitě vhodné pro vědecké publikace.
Následuje import knihovny a její nastavení pro Jupyter (kreslení inline obrázků). Knihovna Numpy je importována také, pro snadné generování syntetických (umělých) dat.
End of explanation
# synthetic data
x = np.linspace(-10, 10, 100)**3
# plotting
plt.plot(x)
plt.show()
# synthetic data
x = np.random.normal(0, 2, 20)
y = np.random.normal(0, 2, 20)
# plotting
plt.plot(x, y, "o")
plt.show()
Explanation: Kreslení bodů a řad
Nejčastější případ zobrazování dat v technických aplikacích je asi spojnicový a bodový (scatter) graf.
Minimální příklady
Následují dva minimalistické příklady, pro pochopení jak používat Matplotlib. V těchto příkladech schválně není nic navíc, aby bylo evidentní jaké příkazy slouží k samotnému kreslení dat.
End of explanation
# synthetic data
x = np.linspace(-10, 10, 100)
y1 = x**3
y2 = x**2
# plotting
plt.figure(figsize=(12,5)) # create figure with size in inches
plt.plot(x, y1, label="$y=x^3$") # plot y1
plt.plot(x, y2, label="$y=x^3$") # plot y2
plt.title("$y=f(x)$") # main title
plt.xlabel("x [-]") # x axis label
plt.ylabel("y [-]") # y axis label
plt.xlim(-7.5, 10) # limits of x axis
plt.ylim(-750, 750) # limits of y axis
plt.grid() # show grid
plt.legend() # show legend
plt.show()
Explanation: Popisky, legenda, titulek, velikost, rozsah, mřížka
Následuje komplexní příklad, v kterém je demonstrováno jak nastavit/doplnit do grafu všechny podstatné náležitosti.
End of explanation
# synthetic data
x = np.linspace(-10, 10, 25)
y1 = x**3
y2 = x**2
y3 = x**4 / 5
# plotting
plt.figure(figsize=(12,7)) # set size
plt.plot(x, y1, "ro", label="$y=x^3$") # plot y1
plt.plot(x, y2, "b^-", linewidth=6, markersize=15, label="$y=x^3$") # plot y2
plt.plot(x, y3, "k:", linewidth=5, label="$y=x^4/5$") # plot y3
plt.legend() # show legend
plt.show()
Explanation: Styl značek, spojnic
Další příklad demonstruje jak nastavovat vzhled značkek a spojnic. Všimněte si zadávání barvy a tvaru markeru:
'ro' - červená (red), kulatý marker (tvar o).
'b^-' - modrá (blue), horní trojůhelník (tvar ^), plná čára (značka -)
'k:' - černá (black), tečkovaná čára (značka :)
End of explanation
# synthetic data
values = [121, 56, 41, 31] # values of bars
years = [2015, 2016, 2017, 2018] # position of bars
# plotting
plt.bar(years, values, align='center')
plt.xticks(years, years)
plt.show()
Explanation: Ostatní druhy grafů
Mimo spojnicových a bodových grafů existují ještě různé další způsoby zobrazení dat. Několik populárních způsobů je ukázáno na následujících příkladech.
Sloupcový graf
Následuje příklad sloupcového grafu.
End of explanation
# synthetic data with normal distribution
x = np.random.normal(0, 2, 1000)
# create and plot histogram
plt.hist(x, bins=20)
plt.show()
Explanation: Histogram
Histogram je sloupcový graf, který zobrazuje četnost výskytu nějaké hodnoty v datech. Je to velice častý způsob analýzy dat. Z tohoto důvodu je v Matplotlibu připravena vlastní funkce, která rovnou kreslí výsledek analýzy.
End of explanation
# synthetic data with normal distribution
x = np.random.normal(0, 2, 1000)
y = np.random.normal(1, 1, 1000)
# basic plot
plt.boxplot([x,y], labels=["x", "y"])
plt.show()
Explanation: Boxplot
Boxplot - krabicový graf je nástroj pro zjednodušené zobrazení rozložení hodnot v nějakém výběru. Jeden box představuje jednu sadu dat (skupinu, vzorek). Následuje příklad - srovnání dvou skupin - x, y.
End of explanation
labels = ['apples', 'oranges', 'pears'] # classes
values = [121, 56, 41] # values for classes
plt.pie(values, labels=labels) # pie chart
plt.legend() 
plt.axis('equal') # unscale to 1:1
plt.show()
Explanation: Koláčový graf
Koláčové grafy jsou tak známé, že je není třeba více představovat. Následuje příklad.
End of explanation
# synthetic data
x = np.random.normal(0, 2, 20)
y = np.random.normal(0, 2, 20)
plt.figure(figsize=(8,5)) # set size
# plotting
plt.subplot(121)
plt.plot(x, y, "ob")
plt.subplot(122)
plt.plot(y, x, "or")
plt.show()
Explanation: Více grafů v jednom okně
Často je požadavek na zobrazení více grafů pohromadě ve skupině. Aby uživatel nemusel obrázky skládat ručně, Matplotlib dokáže grafy uspořádat sám podle instrukcí.
Pozice do které se má kreslit (subplot) v sestavě grafů je určena třemi čísly. První číslo představuje počet řádků v sestavě, durhé číslo představuje počet sloupců v sestavě a poslední číslo pořadí dané pozici v sestavě.
Následuje jednoduchý příklad - dva sloupce, jeden řádek.
End of explanation
# synthetic data
xb = np.random.normal(0, 2, 1000)
yb = np.random.normal(1, 1, 1000)
x0 = np.random.normal(0, 2, 20)
y0 = np.random.normal(0, 2, 20)
plt.figure(figsize=(10,10)) # set size
# first row
plt.subplot(311)
plt.plot(x0, "-xk")
plt.xlabel("x [-]")
plt.ylabel("y [-]")
# second row
plt.subplot(323)
plt.hist(xb, bins=20, color="b")
plt.xlabel("x [-]")
plt.ylabel("y [-]")
plt.subplot(324)
plt.hist(yb, bins=20, color="r")
plt.xlabel("x [-]")
plt.ylabel("y [-]")
# third row
plt.subplot(337)
plt.pie(values, autopct='%1.1f%%', 
        shadow=True,startangle=140)
plt.subplot(338)
plt.boxplot([x,y], labels=["x", "y"])
plt.subplot(339)
plt.pie(values, labels=labels)
# adjust plot placement to make it nicer
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)
plt.show()
Explanation: Následuje příklad, který využívá postupné změny počtu řádků a sloupců k tomu aby vytvořil složitější sestavu.
End of explanation
# set style ggplot
plt.style.use('ggplot')
# syntetic data
x = np.linspace(-10, 10, 100)
y1 = x**3
y2 = x**2
# plotting
plt.figure(figsize=(12,5)) # create figure with size in inches
plt.plot(x, y1, label="$y=x^3$") # plot y1
plt.plot(x, y2, label="$y=x^3$") # plot y2
plt.title("$y=f(x)$") # main title
plt.xlabel("x [-]") # x axis label
plt.ylabel("y [-]") # y axis label
plt.xlim(-7.5, 10) # limits of x axis
plt.ylim(-750, 750) # limits of y axis
plt.legend() # show legend
plt.show()
Explanation: Poznámka: Pří skládání grafů dohromady může někdy dojít k překrývání pospisků os a tilků grafů navzájem. Tento problém je možné ošetřit ručním přizpůsobením mezer mezi grafy (viz předposlední řádek v posledním příkladě). Někdy je možné vylepšit rozložení grafu jen pomocí zavolání příkazu plt.tight_layout() před příkazem plt.show().
Grafické styly
Matplotlib umožňuje používat grafické styly, které mění nastavení celých grafů. Následuje ukázka jednoho populárního stylu.
End of explanation
<END_TASK>