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