MPSI2 Graphiques en Python Informatique
Le module matplotlib.pyplot permet de tracer des courbes. Dans toute la suite, on consid`ere que l’on a import´e les
modules suivants :
import matplotlib.pyplot as plt
import numpy as np
1 Comment proc´eder
Pour tracer des graphiques avec matplotlib, on ´ecrit des directives pour construire une figure morceaux
par morceaux : courbes, axes, graduations, grille, titre... Jusque-l`a rien ne s’affiche : la figure est construite en m´emoire.
On affiche ensuite la figure avec la directive plt.show(), une nouvelle fenˆetre s’ouvre avec la figure affich´ee.
`
A ce moment-l`a, le programme est interrompu jusqu’`a ce que l’on referme la fenˆetre graphique. C’est pour cela,
qu’en g´en´eral, l’instruction plt.show() est la derni`ere instruction du programme.
La fa¸con normale de proc´eder par ´etapes est donc la suivante : on ex´ecute un programme termin´e par plt.show(), on
observe le graphique, on referme la fenˆetre graphique, on modifie le programme, on le r´eex´ecute...
La fenˆetre graphique contient des boutons pour d´eplacer le graphique et zoomer.
On peut enregistrer le graphique dans un fichier, sous de nombreux formats (jpg, png, pdf, svg, gif, tif) suivant l’extension
que l’on met dans le nom du fichier :
-soit on utilise le bouton d’enregistrement dans la fenˆetre graphique
-soit on met dans le programme la directive plt.savefig(0nomdufichier0).
2 La commande plot
La commande fondamentale pour tracer une courbe est : plt.plot(x, y, options) avec :
Ixet ydes tableaux numpy `a une dimension.
ILe troisi`eme param`etre (options) est facultatif, il permet de choisir l’apparence du trait, l’´epaisseur, la couleur...
On obtient une ligne bris´ee joignant les points de coordonn´ees (x[i], y[i]). S’il y a suffisamment de points, la ligne bris´ee
obtenue aura l’apparence d’une courbe.
Voici un exemple o`u l’on trace les courbes repr´esentatives des fonctions sinus et cosinus sur l’intervalle [4π, 4π] en
prenant 100000 points.
Exemple : >>> x =np.linspace(4np.pi, 4np.pi, 100000)
>>> y =np.sin(x)
>>> z =np.cos(x)
>>> plt.plot(x, y)
>>> plt.plot(x, z)
>>> plt.show()
La commande np.linspace(4np.pi, 4np.pi, 100000) permet de cr´eer une liste de 100000 r´eels r´eguli`erement
espac´es dans l’intervalle [4π, 4π]. On utilise la fonction np.sin pour appliquer la fonction sinus `a tout le tableau de points.
Une fenˆetre s’ouvre avec le graphique suivant :
1 Chapitre 5
MPSI2 Graphiques en Python Informatique
On peut bien entendu cr´eer une fonction autre que celles qui existent d´ej`a dans numpy pour la tracer.
Exemple : def f1(x) :
return(np.log(x+np.sqrt(x∗ ∗ 2 + 1)))
x=np.linspace(10,10,10000)
plt.plot(x, f1(x))
plt.show()
3 Options de la commande plot
On peut modifier le motif des points :
’.’ pour un petit point
’o’ pour un gros point
’+’ pour une croix
’*’ pour une ´etoile
’-’ les points sont reli´es par des segments
’- -’ les points sont reli´es par des segments en pointill´es
’-o’ gros points reli´es par des segments (on peut combiner les options)
’b’, ’r’, ’g’, ’y’, ’c’, ’m’ pour de la couleur (bleu, rouge, vert, jaune, cyan, magenta...)
Cette liste n’est pas exhaustive, vous trouverez de plus amples informations ici :
http ://matplotlib.org/api/pyplot api.html#matplotlib.pyplot.plot
En pratique, voici comment s’utilisent ces options :
Exemple : x=np.linspace(4,4,1000)
plt.plot(x, np.sin(x+ 1), color = ’blue, linewidth = 3, linestyle = ’)
Icolor permet de choisir la couleur.
Ilinewidth permet de choisir l’´epaisseur du trait en points, cette valeur est ´egale `a 1 par d´efaut.
Ilinestyle permet de choisir le motif des lignes, ligne pleine par d´efaut.
2 Chapitre 5
MPSI2 Graphiques en Python Informatique
Remarque : On peut abr´eger la commande : plt.plot(x, y, color = ’blue, linestyle = ’) en plt.plot(x, y, b’).
4 Mise en forme d’un graphique
Voici quelques commandes qui permettent de mettre en forme un graphique, la liste n’est pas exhaustive.
Exemple : x=np.linspace(2,4,1000)
plt.axis(0equal0) # rep`ere orthonorm´e
plt.plot(x, np.sin(x+ 1), color = ’blue, linewidth = 3, linestyle = ’), label = ’sin(x+ 1)’)
plt.plot(x, np.sin(x+ 2), color = ’red, linestyle = − −’), label = ’sin(x+ 2)’)
plt.plot(x, np.sin(x+ 3), color = ’red, linestyle = .’), label = ’sin(x+ 3)’)
plt.legend(loc = ’upper right’) # localisation de la l´egende donn´ee par l’instruction label
plt.xlabel(’abscisses’) # egende pour l’axe des abscisses
plt.ylabel(’ordonnees’) # egende pour l’axe des ordonn´ees
plt.title(’Des sinusoides’) #titre de la figure
plt.text(1,2,0T rois courbes0) # texte sur le graphique avec son positionnement
plt.xticks([np.pi / 2,0, np.pi / 2, np.pi]) # abscisses qui vont figurer dans le graphique
plt.yticks([1,0,1]) # ordonn´ees qui vont figurer dans le graphique
plt.grid(T rue) # ajout d’une grille
plt.show()
3 Chapitre 5
MPSI2 Graphiques en Python Informatique
5 Compl´ements
Il est ´egalement possible de tracer des courbes param´etr´ees.
Exemple : T=np.linspace(0,8np.pi, 1000)
X= [tnp.cos(t)for t in T ]
Y= [tnp.sin(t)for t in T ]
plt.plot(X, Y )
plt.show()
On a repr´esene la courbe param´etrique, pour t[0,8π], d’´equation :
x(t) = tcos(t)
y(t) = tsin(t)
4 Chapitre 5
1 / 4 100%