%pylab --no-import-all inline

"""
Explanation: Introduction matplotlib
Germain Salvato-Vallverdu germain.vallverdu@univ-pau.fr
Ce notebook est une très courte introduction à matplotlib. Le site de SciPy, propose un cours sur matplotlib. On trouve de plus une gallerie bien fournie sur le site de matplotlib d'où on peut extraire de nombreux exemples :

Le cours sur SciPy
La galerie sur matplotlib

Dans IPython ou jupyter, on peut importer matplotlib avec la commande magique %pylab qui charge un environement de travail complet avec NumPy, SciPy et matplotlib.
End of explanation
"""


def signal(t):
    return np.sin(2 * t) * np.exp(-4e-2 * t)
def envelope(t):
    return np.exp(-4e-2 * t)

"""
Explanation: Sinon on l'importe généralement en faisant :
py
import matplotlib.pyplot as plt
Exemples :
Ceci est un exemple pas à pas pour démarrer. Reportez-vous à
la galerie pour plus d'exemples.
On va tracer la fonction $S(t)$ et son envelope :
$$
    S(t) = \sin(2\,t) \,e^{-0.04\, t}
$$
Définition des fonctions
End of explanation
"""


t = np.linspace(0, 80, 200)
plt.plot(t, signal(t))
plt.savefig("/Users/gvallver/git/python_sciences/mpl/graph1.png")

"""
Explanation: Un premier graphique
End of explanation
"""


t = np.linspace(0, 80, 200)
plt.plot(t, signal(t))
plt.plot(t, envelope(t), color="red", linestyle="--")
plt.plot(t, -envelope(t), color="red", linestyle="--")
plt.savefig("/Users/gvallver/git/python_sciences/mpl/graph2.png")

"""
Explanation: On ajoute l'envelope
End of explanation
"""


t = np.linspace(0, 80, 200)
plt.plot(t, signal(t))
plt.plot(t, envelope(t), color="red", linestyle="--")
plt.plot(t, -envelope(t), color="red", linestyle="--")
plt.xlabel("temps (s)")
plt.ylabel("Signal (ua)")
plt.title("Ma super fonction amortie")
plt.savefig("/Users/gvallver/git/python_sciences/mpl/graph3.png")

"""
Explanation: On ajoute des informations
End of explanation
"""


t = np.linspace(0, 80, 200)
plt.plot(t, signal(t), label="signal")
plt.plot(t, envelope(t), color="red", linestyle="--", label="envelope")
plt.plot(t, -envelope(t), color="red", linestyle="--")
plt.xlabel("temps (s)")
plt.ylabel("Signal (ua)")
plt.title("Ma super fonction amortie")
plt.legend()
plt.savefig("/Users/gvallver/git/python_sciences/mpl/graph4.png")

"""
Explanation: Et la légende ?
End of explanation
"""


t = np.linspace(0, 80, 200)
plt.plot(t, signal(t), label="signal")
plt.plot(t, envelope(t), color="red", linestyle="--", label="envelope")
plt.plot(t, -envelope(t), color="red", linestyle="--")
plt.xlabel("temps (s)")
plt.ylabel("Signal (ua)")
plt.title("Ma super fonction amortie")
plt.legend()
plt.xlim((0, 40))
plt.ylim((-1.2, 1.5))
plt.savefig("/Users/gvallver/git/python_sciences/mpl/graph5.png")

"""
Explanation: Échelle des axes
End of explanation
"""


t = np.linspace(0, 80, 200)
plt.plot(t, signal(t), label="signal")
plt.plot(t, envelope(t), color="red", linestyle="--", label="envelope")
plt.plot(t, -envelope(t), color="red", linestyle="--")
plt.xlabel("temps (s)")
plt.ylabel("Signal (ua)")
plt.title("Ma super fonction amortie")
plt.legend()
plt.xlim((0, 40))
plt.ylim((-1.2, 1.5))
plt.scatter([25, ], [0, ], s=50)
plt.plot(x, 1 - 4e-2 * t, color="#0C0B0E", linestyle="solid", linewidth=.5)
plt.annotate("Vous avez vu là !!", color="#0C0B0E",
             xy=(25, 0), xycoords='data',
             xytext=(-40, +60), textcoords='offset points', fontsize=16,
             arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.8"))
plt.savefig("/Users/gvallver/git/python_sciences/mpl/graph6.png")

"""
Explanation: Une annotation
End of explanation
"""


