Comment utiliser Matplotlib pour faire des représentations graphiques

En mathématiques, nous avons souvent recours aux représentations graphiques. Surtout lorsqu’on veut visualiser le comportement d’une fonction.

Pour effectuer des représentations graphiques avec python, on utilise le module matplotlib et le sous module pyplot. 

Installation du module matplolib

Certains IDE, comme anaconda, installent nativement des distributions de python qui contiennent des modules très utilisés par la communauté et généralement matplotlib en fait partie. Et si ce n’est pas le cas, il suffit d’ouvrir un terminal et de taper la ligne de suivante :

python -m pip install -U matplotlib

Et le module sera installé en à peine quelques minutes.

Tracer un graphique simple

Je vais essayer de tracer la fonction polynomiale suivante : y = x3. (y égale à x au cube). Pour faire cela je commence par importer le sous module pyplot du maplotlib de la manière suivante :

import matplotlib.pyplot as plt

Cette manière permet d’importer le module avec un alias facile à utiliser. L’alias qu’on utilise souvent avec ce module est plt. 

Ensuite, je vais créer une liste de valeurs allant de [-20 ; 20]. Et pour ce faire j’ai utilisé la fonction range(). Cette fonction permet de créer une liste de valeurs espacées par un intervalle régulier. Elle peut prendre un deux ou trois arguments. Le premier argument correspond à la valeur initiale de la liste, le deuxième argument correspond à la valeur finale de la liste et le dernier argument correspond au pas (l’intervalle entre deux valeurs consécutives). Ainsi pour avoir la liste de valeurs suivantes : 

[-20, -19, -18, …, 0, 1, 2, …, 19, 20]

Il faut utiliser cette fonction de la manière suivante :

X = list(range(10))

Comme on peut le constater, j’ai utilisé la fonctions list() pour convertir le résultat de range() en liste. Le résultat est affecté à la variable X (en majuscule).

Une fois que j’ai les valeurs de X, il suffit de calculer le cube de chaque élément et le mettre dans une liste appelée Y. Voici trois scripts différents qui calculent la liste Y :

Calcul avec boucle for

Y=[]
for x in X:
    Y += [x**3]
print(Y)

Je commence par initialiser Y par une liste vide que j’incrémente avec un calcul de x3 à chaque passage dans la boucle.

Calcul avec boucle while

i=0
Y=[]
while i<len(X):
    Y += [X[i] ** 3]
    i = i+1
print(Y)

Avec la while, j’ai utilisé l’indice i que j’incrémente dans la boucle. 

Méthode rapide pour créer des liste

On peut obtenir le même résultat obtenu avec les deux boucles précédentes avec seulement une seule ligne de code :

Y = [x**3 for x in X]

C’est une méthode rapide qui permet d’obtenir des liste en utilisant la boucle for imbriquée dans la liste. Cette méthode permet aussi d’utiliser des tests conditionnels avec if.

Tracer la courbe y=x3

Pour tracer cette courbe, on utilise l’alias plt avec la méthode .plot()

plt.plot(X, Y)
plt.show()

Par défaut le programme trace la courbe avec des lignes continues, et sans aucun marqueur. En revanche si la figure comporte les graphiques de plusieurs courbes, le programme choisit les une couleur différente pour chaque courbe.

Cependant, il est possible de personnaliser les graphiques, voici quelques idées de personnalisation.

Différents marqueurs de courbe

On peut forcer le tracé avec des motifs personnalisés comme des ronds, carrés, cercle, étoiles, …

Marqueur‘o’‘*’‘.’‘,’‘x’‘X’‘+’‘P’
DescriptionCercleÉtoilePointPixelXX (rempli)PlusPlus (rempli)
         
Marqueur‘s’‘D’‘d’‘p’‘H’‘h’‘v’‘^’
DescriptionCarréDiamondDiamond (mince)PentagoneHexagonHexagoneTriangle basTriangle haut
         
Marqueur‘<‘‘>’‘1’‘2’‘3’‘4’‘|’‘_’
DescriptionTriangle gaucheTriangle DroitTri basTri hautTri gaucheTri droitVlineHline

Format de la ligne de traçage

On peut changer la ligne continue en ligne avec des tirets, des pointillés, … voici un tableau qui regroupe les différentes options :

Syntaxe Description
‘-‘Ligne continue
‘:’Pointillés
‘–‘Ligne avec des tirets
‘-.’Points et tirets alternés

Choix des couleurs

Que ce soit pour la ligne de traçage de la courbe ou pour les marqueurs ou leurs contours, les couleurs sont facilement personnalisables et de plusieurs manières différentes. Pour la majorité des couleurs courantes on peut tout simplement utiliser la première lettre de la couleur, ou bien le nom de la couleur ou même le code hexadécimal de la couleur. Voir ‘exemple ci-dessous.

Tracé de courbe personnalisé

Voici un script qui permet de personnaliser des courbes avec plusieurs paramètres

import matplotlib.pyplot as plt

X = list(range(10))

Y1 = [x**3 for x in X]

Y2 = [x**2 for x in X]

Y3 = [10*x**2 for x in X]

style1 = {'family':'serif','color':'blue','size':20}

style2 = {'family':'serif','color':'darkred','size':15}

fig = plt.figure()

fig = plt.plot(X, Y1, "2", ms = 20, mec = 'g')

fig = plt.plot(X, Y2, marker = "*", ms = 10, mec = 'b', mfc = 'r')

fig = plt.plot(X, Y3, linestyle = 'dotted', linewidth = '4.5')

plt.grid()

#plt.grid(axis = 'x')

#plt.grid(color = 'green', linestyle = '--', linewidth = 0.5)

plt.title("Y1 = x^3 ; Y2 = X^2", style1, loc = 'left')

plt.xlabel("Axe X", style2)

plt.ylabel("Axe Y", style2)

plt.show()

Et le résultat de ce code est e suivant :

Il reste le paramètrage de courbes goupées en plusieurs fenêtres, je traiterai cela dans un prochain poste.

Si vous avez aimé l'article vous êtes libre de le partager :)

4 commentaire

  1. est-ce possible d’utiliser Matplotlib sans être un programmeur sur python . OU autre question, connais-tu des plateformes géniale pour faire des graphiques autres que excel

    1. Bonjour Isabelle,
      sans faire du programme ça va être un peut difficile d’utiliser Matplotlib, en revanche il y a beaucoup plateforme qui permettent de faire de jolis graphiques, ça dépend de l’utilisation derrière. je peux te conseiller Geogebra par exemple qui est excellent!

Laisser un commentaire