La passion du libre

Graphiques avec pyplot (toujours en cours d'élaboration)

Cliquez sur le bouton pour afficher les conseils de lecture.Cliquez à nouveau pour les masquer

Fenêtres surgissantes explicatives

Certains mots dans le texte, affichés en vert et en gras, sont précédés d'une étoile verte sur fond orange. Par exemple, ce mot : lien.

Si vous placez le pointeur de la souris sur un tel mot, une fenêtre surgissante – popup – s'ouvre alors que l'affichage du reste du documment s'atténue. Cette fenêtre contient une explication détaillée du mot en question

Une fois que vous avez pris connaissance de ce que vous affiche cette fenêtre surgissante, vous pouvez retourner à l'état normal en cliquant ailleurs dans le document.

Navigation

Pour naviguer, utilisez le menu vertical à gauche du texte. Les entrées de menu marquées d'une petite flèche vers le bas ouvrent un sous-menu lorsqu'on clique dessus.

Vous pouvez également choisir une lecture continue en cliquant sur un des liens proposés en bas de page.

Les fonctions de base du tracé

Les commandes/fonctions de base les plus usitées pour tracer des graphiques sont :

Dans ces commandes/fonctions, en plus des arguments optionnels (nom d'argument = ), on peut donner un certain nombre d'arguments à mot clé (keyword arguments – ** kwargs) qui sont expliqués en détail dans l'API comme :

  • linewidth qui représente l'épaisseur du trait
  • label qui permet d'associer un texte pour la légende automatique

La fonction matplotlib.pyplot.plot

La signature est la suivante : matplotlib.pyplot.plot(*args, **kwargs)

bases-01

Suite de points reliés par une ligne

Voici un exemple de commande pour placer une suite de points reliées par un ligne :

>>> plt.plot([0,1,3,4,5],[8,2,7,7,0])
[<matplotlib.lines.Line2D object at 0x7f254fd046a0>]
>>> plt.savefig('/home/jaaf/pythontuto/bases-01.png')
>>> 

Le premier tableau représente les valeurs de x, le deuxième les valeurs de y en correspondance une à une


bases-02 Si on ne donne qu'un seul tableau, il est censé représenter les valeurs de y. Les valeurs de x correspondantes sont les entiers de 0 à n, n étant le nombre de valeurs de y moins 1.

>>> plt.plot ([7,8,6,6,5,5,2,1,0])
[<matplotlib.lines.Line2D object at 0x7f254fd04978>]
>>> plt.savefig('/home/jaaf/pythontuto/bases-02.png')
>>> 

On a vu dans les pages précédentes que les tracés s'ajoutent au repère courant de la figure courante.


bases-03

Suite de points non reliés

Pour placer les points sans les relier par une ligne :

>>> plt.clf()
>>> plt.plot ([7,8,6,6,5,5,2,1,0],'ro')
[<matplotlib.lines.Line2D object at 0x7f254fb75240>]
>>> plt.savefig('/home/jaaf/pythontuto/bases-03.png')
>>> 

La première de ces commandes clf() signifie « clear figure » soit effacer la figure.

Le deuxième paramètre (qui serait le troisième si les valeurs de x étaient fournies) définit le type de point ou de ligne. Les valeurs possibles sont :

Caractère Description
'-' ligne pleine
'--' ligne en tirets
'-.' ligne alternant tiret et point
':' ligne en pointillés
'.' marque de point
',' marque de pixel
'o' marque par un cercle
'v' marque par un triangle pointe en bas
'^' marque par un triangle pointe en haut
'<' marque par un triangle pointe à gauche
'>' marque par un triangle pointe à droite
'1' tri_down marker
'2' tri_up marker
'3' tri_left marker
'4' tri_right marker
's' marque par un carré (square)
'p' marque par un pentagone
'*' marque par une étoile
'h' marque par l'hexagone 1
'H' marque par l'hexagone 2
'+' marque par une croix +
'x' marque par une croix x
'D' marque par un losange
'd' marque par un losange étroit
' '| marque par des barres verticales
'_' marque par des longs tirets

Ce caractère est précédé d'un caractère précisant la couleur

Caractère Couleur
‘b’ blue -bleu
‘g’ green - vert
‘r’ red - rouge
‘c’ cyan - cyan
‘m’ magenta
‘y’ yellow - jaune
‘k’ black - noir
‘w’ white -blanc

D'autres couleurs sont possibles, on se reportera à la section parlant des couleurs. Dans le cas où la couleur ne peut être donnée par un caractère, on utilise les arguments à mot clé marker et linestyle.


bases-04

Utilisation des **kwargs pour la légende

Voici un exemple utilisant les paramètres à mot clé.

>>> plt.clf()
>>> plt.plot ([5,7,2,2,3,5,6,1,0],'b--', label='première série', linewidth=2)
[<matplotlib.lines.Line2D object at 0x7f254d78e898>]
>>> plt.plot ([7,8,6,6,5,5,2,1,0],'r-', label='deuxième série', linewidth=2)
[<matplotlib.lines.Line2D object at 0x7f254d78eba8>]
>>> plt.legend()
<matplotlib.legend.Legend object at 0x7f254d806400>
>>> plt.savefig('/home/jaaf/pythontuto/bases-04.png')
>>> 

bases-05

Titres

On peut toujours ajouter un titre à la figure et des intitulés pour les axes.

 >>> plt.title("Un exemple de figure à deux tracés avec légende")
 <matplotlib.text.Text object at 0x7f254d7b4898>
 >>> plt.xlabel('Axe des temps')
<matplotlib.text.Text object at 0x7f254fba73c8>
>>> plt.ylabel('Valeurs relevées en bars')
<matplotlib.text.Text object at 0x7f254fba1c18>
>>> plt.savefig('/home/jaaf/pythontuto/bases-05.png')
>>> 

Tracé d'une courbe mathématique

Pour tracer une courbe mathématique divers solutions sont possibles :

  • y=f(x) mode cartésien
  • ** x=f(t) et y=g(t) mode paramètrique

bases-06

Mode cartésien

On utilisera utilement le module numpy de python pour générer une suite de valeurs de x

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> x=np.arange(0,5,0.01)
>>> y=np.sin(x**2)
>>> plt.plot(x,y)
[<matplotlib.lines.Line2D object at 0x7f254d751198>]
>>> plt.savefig('/home/jaaf/pythontuto/bases-06.png')

Ici la fonction arange() crée une suite de valeurs de x allant de 0 à 5 avec un pas de 0.01.


bases-07

Mode paramétrique

En continuant à la suite des instructions précédente :

>>> plt.clf()
>>> t=np.arange(0,100,0.01)
>>> x=np.sin(t)
>>> y=3*np.sin(3*t+1)
>>> plt.plot(x,y)
[<matplotlib.lines.Line2D object at 0x7f254d6d8940>]
>>> plt.savefig('/home/jaaf/pythontuto/bases-07.png')
>>> 

Fonction matplotlib.pyplot.scatter()

La signature est la suivante

matplotlib.pyplot.scatter(x, y, s=20, c=None, marker='o', cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)

Fonction matplotlib.pyplot.bar

La signature est la suivante

matplotlib.pyplot.bar(left, height, width=0.8, bottom=None, hold=None, data=None, **kwargs)