Poster une réponse 
Tutoriel 10 : le module matplotlib
16-06-2017, 02:23 PM
Message : #1
Rainbow Tutoriel 10 : le module matplotlib
<< Tutoriel précédent Tutoriel suivant >>


Le module (ou bibliothèque : library en anglais...) matplotlib permet de dessiner, de tracer des courbes, des histogrammes...

Il est formé de plusieurs bibliothèques, notamment :
matplotlib.pyplot pour dessiner des points, des segments, des figures...

la fenêtre graphique
from matplotlib.pyplot import * importe la bibliothèque
axis([xmin,xmax,ymin,ymax])
ou bien
xlim(xmin,xmax) et ylim(ymin,ymax)
définit la taille de la fenêtre graphique
xmin, xmax, ymin et ymax
(comme sur une calculatrice)
show() montre la fenêtre graphique
grid() montre la grille
axis("equal") montre un repère orthonormé

arrow Pour placer des points ou tracer des segments, on utilise la commande plot

la commande plot
avec 1 point plot ([xA],[yA],"x") dessine le point A avec une croix x
avec 2 points plot ([xA,xB],[yA,yB],"+") dessine les points A et B avec des croix +
avec 3 points ou plus plot ([xA,xB, ... ,xC],[yA,yB, ... ,yC],"o") dessine le nuage de points A, B, ..., C avec des ronds o
avec 2 points plot ([xA,xB],[yA,yB]) dessine le segment [AB]
avec 3 points ou plus plot ([xA,xB, ... ,xC],[yA,yB, ... ,yC]) dessine la ligne brisée [AB...C]
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur
Citer ce message dans une réponse Return to top
28-06-2017, 11:48 PM
Message : #2
Tutoriel 10 : le module matplotlib
Explications et compléments... :

Cette commande a 3 arguments plot(liste d'abscisses,liste d'ordonnées,chaîne de caractères)

arrow les listes des abscisses et des ordonnées doivent être écrite entre crochets
Voici un exemple pour montrer les 3 points de coordonnées (-1;-2) (3;4) et (5;1)
Code :
x=[-1,3,5]
y=[-2,4,1]
plot(x,y)
ou bien
Code :
plot([-1,3,5],[-2,4,1])

arrow la chaîne de caractères est formée de 4 caractères maximum :
• 1 caractère pour la forme des points
• 1 caractère pour la couleur
• 1(ou 2) caractère(s) pour le style de la ligne qui relie les points
Voici un tableau pour montrer les codes utilisés
la forme des points la couleur le style de ligne
; , o v ^ < > * + x | _
s carré
p pentagone
h hexagone1
H hexagone2
d diamant fin
D diamant
b bleu
g vert
r rouge
c cyan
m magenta
y jaune
k noir
w blanc
- ligne continue
-- tirets
: ligne en pointillés
-. tirets points

Exemples :

Code :
from matplotlib.pyplot import *
xlim(-10,10)
ylim(-5,5)
x=[-1,3,5]
y=[-2,4,1]
plot(x,y,"or--")
show()
"or--" les points seront des ronds o colorées en rouge et reliés par des tirets
[Image: plt1.png]

Code :
from matplotlib.pyplot import *
xlim(-10,10)
ylim(-5,5)
x=[-1,3,5]
y=[-2,4,1]
plot(x,y,"xk")
show()
"xk" les points seront des croix x colorées en noir (les points ne seront pas reliés)
[Image: plt2.png]

Code :
from matplotlib.pyplot import *
xlim(-10,10)
ylim(-5,5)
x=[-1,3,5]
y=[-2,4,1]
plot(x,y,"m:")
show()
"m:" une ligne en pointillés colorée en magenta (les points ne seront pas montrés)
[Image: plt1 1.png]

Code :
from matplotlib.pyplot import *
xlim(-10,10)
ylim(-5,5)
x=[-1,3,5]
y=[-2,4,1]
plot(x,y,"d-")
show()
"d-" les points seront des diamants , reliés par une ligne continue (la couleur est bleue par défaut)
[Image: plt1 2.png]

Code :
from matplotlib.pyplot import *
xlim(-10,10)
ylim(-5,5)
x=[-1,3,5]
y=[-2,4,1]
plot(x,y)
show()
Si on n'écrit pas de chaîne de caractère (ou bien une chaîne vide "")
on obtient une ligne brisée (de couleur bleue par défaut)
[Image: plt2 1.png]

En particulier :
plot ([xA,xB],[yA,yB]) dessine... le segment [AB] fi_lone_ranger



arrow plot accepte d'autres arguments
• pour définir l'épaisseur des segments : linewidth=entier
• pour donner une étiquette au tracé : label=chaîne de caractères
(pour l'afficher, écrire legend())

Code :
from matplotlib.pyplot import *
xlim(-10,10)
ylim(-5,5)
x=[-1,3,5]
y=[-2,4,1]
plot(x,y,"Dg-",label="zoli",linewidth=4)
legend()
show()
[Image: plt3.png]

arrow on peut également afficher :
• un titre avec title()
• une légende sur les axes avec xlabel(chaîne de caractères) et ylegend(chaîne de caractères)
• une grille avec grid()
• la même unité sur les 2 axes avec axis("equal")

Code :
from matplotlib.pyplot import *
xlim(-10,10) ; ylim(-5,5)
x=[-1,3,5] ; y=[-2,4,1]
plot(x,y,"*m-",label="bidip",linewidth=2)
legend()
title("Lignes brisées")
grid()
xlabel("axe des abscisses") ; ylabel("axe des ordonnées")
axis("equal")
show()
[Image: plt4.png]

Remarques :

• En demandant la même unité sur les 2 axes, avec axis("equal"), un recadrage est effectué (pour voir au mieux le dessin) good

• Il n'y a pas de commandes pour tracer les axes gradués "comme en mathématiques"
On peut tracer les axes avec plot...
Code :
plot([-2,6],[0,0])
plot([0,0],[-2,4])
[Image: plt5 2.png]

Code :
plot([-10,10],[0,0])
plot([0,0],[-5,5])
[Image: plt5 1.png]
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur
Citer ce message dans une réponse Return to top
28-06-2017, 11:48 PM
Message : #3
Tutoriel 10 : le module matplotlib
<< Tutoriel précédent Tutoriel suivant >>

[Image: 118.gif]
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur
Citer ce message dans une réponse Return to top
Poster une réponse