Programmation en Python

Graphiques



Bibliothèque Matplotlib

matplotlib est une bibliothèque python qui permet de faire de nombreuses choses mathématiques, entre autre des graphiques. Pylab est un module qui permet d'importer et d'utiliser aisément la bibliothèque grahique pyplot de matplotlib, ainsi que, à la fois, la bibliothèque numpy de calcul scentifique.
Comme toute bibliothèque python, on importe pylab selon
from pylab import *

Premiers exemples

La fonction plot permet de tracer des points. Par exemple
from pylab import *
x=2;
y=3;
plot(x,y,'*r')
show()
Le troisième argument de la fonction plot désigne le symbole utilisé pour indiquer le point (ici une étoile *, ainsi qu'une couleur: r pour red, b pour blue, k pour black, g pour green, ... )
On peut placer plusieurs points en répétant l'étape précédente
from pylab import *
x=2;y=3;plot(x,y,'*r')
x2=4;y2=5;plot(x2,y2,'*r')
x3=5;y3=8;plot(x3,y3,'*r')
show()
Pour tracer plusieurs points, on peut préférer définir une liste de points, ce qui va permettre entre autre de relier les points entre eux, par exemple
from pylab import *
x=[2,4,5]
y=[3,5,8]
plot(x,y)
show()


Courbe représentative d'une fonction

Une fois une fonction définie, on peut tracer des points de sa courbe représentative, par exemple, pour la fonction carré et en utilisant une boucle for (et plus précisément une boucle avec range):
from pylab import *
def f(x):
    y=x**2
    return y

for i in range(-10,10):
    x=i
    plot(x,f(x),'*')
show()

Courbe avec un pas plus fin

L'exemple précédent place un point de la courbe représentative à chaque abscisse entière, ce qui fait en tout peu de points.
On appelle pas l'écart entre deux abscisses consécutives, qui vaut donc 1 dans cet exemple.
On peut bien sûr tracer autant de points, et avec un pas aussi fin, qu'on le souhaite. On modifie par exemple le programme précédent pour tracer des points de la courbe avec un pas de un dixième:
from pylab import *
def f(x):
    y=x**2
    return y

pas=0.1
for i in range(0,200):
    x=-10+i*pas
    plot(x,f(x),'*')

show()

Courbe avec une liste de points reliés

Dans le programme précédent, on trace un point après l'autre. On peut aussi, comme dans le premier exemple précédent, calculer des listes de coordonnées: liste d'abscisses et liste d'ordonnées puis demander, en une seule fois, l'affichage graphique.
La commande append ("ajouter" en anglais) permet d'ajouter successivement des valeurs dans chaque liste.
from pylab import *
def f(x):
    y=x**2
    return y

pas=1
listex=[]
listey=[]

for i in range(0,20):
    x=-10+i*pas
    y=f(x)
    listex.append(x)
    listey.append(y)

plot(listex,listey,'--*')

show()


Quelques options utiles

Limites de la fenêtre graphique

On peut spécifier les bornes de la fenêtre graphique en utilisant les fonctions xlim et ylim, par exemple
xlim(-5,10)
ylim(3,13)
permet de spécifier que l'axe des abscisses va de -5 à 10 et celui des ordonnées de 3 à 13.

Que l'on précise ou non les valeurs minimales et maximales pour chaque axe, on peut préciser
axis("equal")
qui permet d'avoir la même échelle en abscisse et en ordonnée, c'est-à-dire d'imposer au repère d'être orthonormé.

Style et couleur des traits

On peut spécifier le type des traits et leur couleur en option de la commande plot, par exemple
plot(x,y,'--*r')
qui trace les points avec une étoile *, les relie avec des tirets, le tout en rouge (red).
Dans cette option on spécifie donc trois symboles:
  • le type de traits: - pour relier les points en trait plein, -- avec des tirets, -. avec des traits mixtes, : pour des pointillés
  • le type de symbole utilisé pour marquer chaque point: * pour une astérisque, o pour un rond, d pour un losange (diamond), + pour une croix
  • une couleur: r pour red, b pour blue, k pour black, g pour green, y pour yellow, m pour magenta

Épaisseur des traits

L'épaisseur des traits peut être spécifiée avec l'argument linewidth, par exemple
plot(x,y,linewidth=5)

Titre et légende

Un titre à la fenêtre graphique se spécifie via la foction title, par exemple
title("Un titre !")
La legende associée à chaque tracer se spécifie par un label dans la commande même de l'élément tracé, puis en indiquant d'ajoutant la légende, par exemple,
plot(x1,y1,'-db',linewidth=2,label="Courbe 1")
plot(x2,y2,'--+k',linewidth=4,label="Courbe 2")
title("2 belles courbes")
legend()


Top Programmation en python