diff --git a/04-matplotlib/examples.py b/04-matplotlib/examples.py new file mode 100644 index 0000000000000000000000000000000000000000..556e4ac9a1702cee24b7de341522e372ec39ea8a --- /dev/null +++ b/04-matplotlib/examples.py @@ -0,0 +1,146 @@ +import numpy as np +import matplotlib.pyplot as plt +import math + +# Triviální příklad: jedna křivka +def example1(): + x = np.linspace(0, 2, 100) + plt.plot(x, x ** 2) + plt.show() + +# Graf se dvěma křivkami a popsanými osami +def example2(): + x = np.linspace(0, 2, 100) + plt.plot(x, x ** 2, label="quadratic") + plt.plot(x, x ** 3, label="cubic") + plt.xlabel("Čas") + plt.ylabel("Počet svišťů") + plt.title("Svišti na cvičišti") + plt.legend() + plt.show() + # plt.savefig("figure.pdf") + +# Různé styly bodů a čar +def example3(): + x = np.linspace(0, 2, 10) + plt.plot(x, x, 'ro-', label="linear") # Red, dots, line + plt.plot(x, x ** 2, 'b--', label="quadratic") # Blue, dashed line + plt.plot(x, x ** 3, 'g^', label="cubic") # Green, triangles + plt.plot(x, x ** 4, 'ko-', markersize=10, linewidth=4, label="quartic") # Heavy line, big markers + plt.legend() + plt.show() + +# Schodiště +def example4(): + n = 32 + x = np.linspace(0, 2*math.pi, n) + plt.plot(x, np.sin(x), 'o-', color='grey', alpha=0.5) + plt.step(x, np.sin(x), where='pre') # or "mid" or "post" + plt.show() + +# Sloupcový graf +def example5(): + x = np.linspace(0, math.pi, 10) + y = np.sin(x) + plt.bar(x, y, color='blue', edgecolor='black', width=0.2) + plt.show() + +# Histogram +def example6(): + r = np.random.random_sample(100) + plt.hist(r, bins=10, range=(0.,1.), edgecolor='black') + plt.show() + +# Plocha mezi dvěma křivkami +def example7(): + x = np.linspace(0, 2, 100) + plt.fill_between(x, x**2, x**3) + plt.show() + +# Polární souřadnice: srdovka +def example8(): + phi = np.linspace(0, 2*math.pi, 100) + r = 1 - np.cos(phi) + plt.polar(phi, r) + plt.show() + +# Logaritmické osy +def example9(): + x = np.linspace(0, 10, 100) + y = 2**x + # plt.plot(x, y) + plt.semilogy(x, y) + # plt.loglog(x, y) + plt.show() + +# Styl "od ruky" po vzoru xkcd.com +def example10(): + x = np.linspace(0, 2, 20) + plt.xkcd() + plt.plot(x, x ** 2, label="quadratic") + plt.plot(x, x ** 3, label="cubic") + plt.xlabel("Čas") + plt.ylabel("Počet svišťů") + plt.title("Svišti na cvičišti") + plt.legend() + plt.show() + +# Doplněné čáry s popiskami +def example11(): + x = np.linspace(0, 2, 100) + plt.plot(x, x ** 2) + plt.hlines([1., 2.], xmin=0., xmax=2.) + plt.vlines([1.], ymin=0., ymax=3.) + plt.text(0.1, 1.05, "y=1", fontsize=24) + plt.annotate("y=2", (0.1, 2.05), xytext=(0.15, 2.2), arrowprops={'arrowstyle': '->'}, fontsize=24) + plt.show() + +# Více grafů v jednom obrázku +def example12(): + x = np.linspace(0, 2, 100) + plt.subplot(221) # zkratka za (2, 2, 1), což je (#řádků, #sloupců, kolikátý) + plt.plot(x, x) + plt.subplot(222) + plt.plot(x, x**2) + plt.subplot(223) + plt.plot(x, x**3) + plt.subplot(224) + plt.plot(x, x**4) + plt.show() + +# Sdílení os +def example13(): + x = np.linspace(0, 10, 1000) + ax = plt.subplot(311) + plt.plot(x, np.sin(2*math.pi*x)) + plt.subplot(312, sharex=ax, sharey=ax) + plt.plot(x, 0.5*np.sin(3*math.pi*x)) + plt.subplot(313, sharex=ax, sharey=ax) + plt.plot(x, 0.7*np.sin(5*math.pi*x)) + plt.show() + +# Objektové rozhraní +def example14(): + # Založíme obrázek + fig, ax = plt.subplots() + # fig je typu Figure (celý obrázek) + # ax typu Axes (to je jeden graf) + + # Nastavíme globální vlastnosti obrázku + fig.set_facecolor('#ccccff') + + # Nakreslíme křivku + x = np.linspace(0, 5, 1000) + p, = ax.plot(x, np.cos(2*math.pi*x)) # tuple -> p je typu matplotlib.lines.Line2D + + # Nastavíme vlastnosti křivky + p.set_color('red') + p.set_linewidth(2) + + # Upravíme textové objekty s čísly u značek na ose x + for tick in ax.get_xticklabels(): + tick.set_rotation(55) + + plt.show() + +example1() \ No newline at end of file diff --git a/04-matplotlib/notes b/04-matplotlib/notes deleted file mode 100644 index 4799464d947bf69f8ed3acc6c8b563ccae85e62d..0000000000000000000000000000000000000000 --- a/04-matplotlib/notes +++ /dev/null @@ -1,26 +0,0 @@ -matplotlib.pyplot.annotate(s, xy, *args, **kwargs) -axis(\*args, \*\*kwargs) -bar -clf() -figlegend - -fig = figure(figsize=...) -grid -hist ? -savefig -show - -subplot -title -xlabel -ylabel -xlim -ylim -x/yscale -suptitle - -text - -tick_params - -xkcd