import numpy as np
import matplotlib.pyplot as plt

## Deux exemples pour démarrer

def f(x):
    return x**3 + 3*x + 1

# Création d'une liste d'abscisses et des ordonnées correspondantes
abscisses = [-3, -2, 0, 1, 5, 6]
ordonnees = [f(x) for x in abscisses]

# fig = fenêtre qui sera affichée à l'écran avec un titre
fig = plt.figure("Exemple 1")

# On donne un titre au graphique et un nom aux axes
plt.title('Mon premier graphique')
plt.xlabel('x')
plt.ylabel('f(x)')

# On trace la courbe en reliant les points avec plein d'options
plt.plot(abscisses, ordonnees, color = "red", linestyle = "dashed", linewidth = 2, marker = "*", markeredgecolor = "blue", markersize = 10)

# On ajoute une grille pour plus de lisibilité
plt.grid()

# On demande à Python d'ouvrir la fenêtre contenant le graphique
plt.show()

# Création d'une liste d'abscisses et des ordonnées correspondantes
abscisses = np.linspace(-5, 5, num=100)
ordonnees = [f(x) for x in abscisses]   # ordonnees = f(abscisses) fonctionne aussi

# fig = fenêtre qui sera affichée à l'écran avec un titre
fig = plt.figure("Exemple 2")

# On donne un titre au graphique
plt.title('Mon deuxième graphique')

# On trace la courbe
plt.plot(abscisses, ordonnees, color='green', label="Fonction f")

# On impose une échelle pour les axes (Python peut les calculer automatiquement)
plt.xlim(-7, 7)
plt.ylim(-5, 85)

# On affiche la légende en haut à droite
plt.legend(loc='upper right')

# On ajoute une grille pour plus de lisibilité
plt.grid()

# On demande à Python d'ouvrir la fenêtre contenant le graphique
plt.show()

## Exercice — échauffement (x**2 sur [-2, 2])

## Exercice — graphes de fonctions

## Exercice — courbes paramétrées

T = np.linspace(0, 100, 500)
X = T * np.cos(T)
Y = T * np.sin(T)
plt.figure()
plt.plot(X,Y)
plt.show()

T = np.linspace(0, 2 * np.pi, 500)
X = np.cos(T) * (1 - np.cos(T))
Y = np.sin(T) * (1 - np.cos(T))
plt.figure()
plt.plot(X,Y)
plt.show()

## Exercice — conjecture graphique

## Exercice — fonction et réciproque

## Exercice — escalier / escargot (étoile)
