import matplotlib.pyplot as plt

## Créer des listes de même taille

from math import cos,pi
x=[]
y1=[]
y2=[]
for i in range(1000):
    x.append(0.004*pi*i)
    y1.append(2.5*cos(x[i]))
    y2.append(1.5*cos(2*x[i]))

## Afficher une courbe
plt.plot(x,y1)
plt.show()

## Afficher une courbe avec une légende, un titre et des noms sur les axes
plt.plot(x,y1,label="courbe 1")
plt.title("Le titre que l'on veut")
plt.xlabel("Grandeur en x (unite)")
plt.ylabel("Grandeur en y (unite)")
plt.legend()
plt.show()

## Tracer deux courbes sur un même graphique
plt.plot(x,y1,label='Courbe 1')
plt.plot(x,y2,label='Courbe 2')
plt.legend()
plt.show()

## Tracer deux courbes avec des paramètres facultatifs
plt.plot(x,y1,color="red")
plt.plot(x,y2,'--')
plt.show()


## Représenter une sinusoide avec quelques options facultatives
from math import sin,cos,pi

#on peut modifier A1, T1 et phi1 pour voir l'effet
A1 = 1.
T1 = 0.002
phi1 = 0.

A2 = 1.
T2 = 0.001
phi2 = 0.

t = []
Y1 = []
Y2 = []
dt = max(T1,T2)/10000

#on crée les listes de données
for i in range(30000): 
    t.append(i*dt)
    Y1.append(A1 * cos(2*pi*t[-1]/T1 + phi1))
    Y2.append(A2 * cos(2*pi*t[-1]/T2 + phi2))

#on trace les deux courbes
plt.plot(t,Y1,"red",label="courbe 1") 
plt.plot(t,Y2,"green",label="courbe 2")

#ce bloc de 7 lignes permet d'avoir des axes qui se croisent en (0,0)
ax = plt.gca() 
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')

#fait tourner le texte correspondant aux valeurs sur l'axe Ox
plt.xticks(rotation=45) 

#Ajoute une légende sur chaque axe
plt.xlabel("t") 
plt.ylabel("y")

#affiche la légende du graphique
plt.legend() 

#ajoute un titre à la figure
plt.title("Représenter deux sinusoides")

#affiche le graphique
plt.show() 


