Les graphiques

Créer des graphiques avec matplotlib

On va utiliser la bibliothèque matplotlib pour tracer des graphiques. Il s'agit d'une bibliothèque de Python déjà installés dans EduPython. Cette bibliothèque contient plusieurs modules contenant chacun plusieurs fonctions

Pour créer un graphique, on doit définir deux listes de nombres : l'une contenant les abscisses et l'autre les ordonnées

Exemple

Pour tracer la courbe de la fonction \(f : x \)→ \(x^2-4\) sur l'intervalle [-4 ; 4] :

  1. On définit la fonction \( f \):
    # -*- coding: utf-8 -*-
    def f(x):
    	return x**2-4
  2. On crée ensuite une liste de 50 valeurs allant de -4 à 4 à l'aide de la bibliothèque numpy et la liste ly des images des éléments de la liste lx comme suit :
    # -*- coding: utf-8 -*-
    import numpy as np
    lx=np.linspace(-4,4,50)
    ly=f(lx)
  3. A partir de ces deux listes, on peut créer un graphique de f :

    # -*- coding: utf-8 -*-
    import numpy as np
    import matplotlib.pyplot as plt # importation du module matplotlib.pyplot sous l'alias plt
    def f(x):
        return x**2-4
    lx=np.linspace(-4,4,50)
    ly=f(lx)
    plt.plot(lx,ly) # A partir des deux listes on crée le graphique
    plt.show()      # pour afficher le graphique
    Courbe : fonction carrée

Remarque

le rôle de l'instruction plt.plot(lx,ly) est de relier les points d'abscisses et d'ordonnées les éléments des listes respectives lx et ly, situés à la même position, par des segments

Repérage des points sur le graphique

  1. Si on veut afficher clairement les points qui ont permis de créer le graphique, on remplace l'instruction plt.plot(lx,ly) par plt.plot(lx,ly,marker='o')
  2. Si on veut placer les points sans les relier, on remplace plt.plot(lx,ly) par plt.plot(lx,ly,'o') on obtient la figure : Courbe : fonction carrée : points
  3. Si on veut tracer la courbe en pointillés en vert on remplace l'instruction plt.plot(lx,ly) par plt.plot(lx,ly,'b--')
  4. Courbe : fonction carrée : pointillés

Remarque

Voici un programme en Python pour tracer la courbe de f avec des options supplémentaires

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

def f(x):
	return x**2 - 4

lx=np.arange(-4,4.1,0.1) # liste de nombres allant de -4 à 4 avec un pas h = 0.1
plt.plot(lx,f(lx))
plt.xlabel("x")
plt.ylabel("f(x)")
plt.title('Courbe de f : y = x² - 4')
plt.show()

On obtient le graphique suivant :

Courbe : options

Remarque

Si on souhaite changer un des quatre valeurs xmin et xmax sur l'axe des abscisses, ymin et ymax sur l'axe des ordonnées, par exemple on écrit :

plt.axis(xmin=0,ymin=0)
Si on veut modifier les quatre valeurs, on écrit plt.axis([-6,6,-7,16]), la fonction fixera l'intervalle des abscisses à [-6 ; 6] et celui des ordonnées à [-7 ; 16].

On obtient le graphique suivant :

Courbe : options

Placer un point dans un graphique

Voici un programme pour placer le point M(3,2) du plan dans un repère

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
plt.plot(3,2,'gx')
plt.xlabel("Abscisses")
plt.ylabel("Ordonnées")
plt.axis([-1,4,-2,5])
plt.title('Placer un point')
plt.show()
Courbe : options

Vous avez remarqué que quant on affiche une figure avec la fonction plt.show() on ne peut plus utilisr la console tant que la fenêtre du graphique n'est pas fermée et après la ferméture du fichier on perd la courbe tracée, pour pouvoir conserver ce graphique, on peut le sauvegarder en utilisant la fonction plt.savefig(). elle enregistre votre tracé sous la forme d'une image dont vous pouvez vous servir dans vos cours. On peut imposer le format d'images qu'on veut (PNG, JPG, ...). En prenant comme argument le nom à donner au fichier avec le format choisi, par exemple figure.png.

Attention :

  • Si vous écrivez vos instructions dans un programme dans la zone de programmmes d'EduPython. Après son exécution, Python sauvegarde votre fichier dans le même repertoire où votre programme est enregistré, si vous voulez le sauvegarder dans un autre repertoire, vous devez décrire le chemin, par exemple plt.savefig('Images/figure.png') le fichier figure.jpg sera sauvegardé dans le repertoire Images, qui existe déjà, situé dans le même dossier que votre programme.
  • Si toutes les instructions sont saisies dans la console, votre fichier image sera sauvegardé par défaut dans le dossier où vous avez installé votre distribution EduPython.

Remarque

Dans le programme ci-dessous, l'instruction ly=f(lx)) ne fonctionne pas pour une fonction définie, par exemple, par morceaux

Pour éviter ce problème, on peut définir la liste des images ly de la liste lx des abscisses autrement :

ly=[f(x) for x in lx]

Voici un programme qui permet de tracer la courbe de la fonction valeur absolue sur l'intervalle [-4 ; 4]

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
def f(x):
    if x <0 : return -x
    else : return x
lx=np.arange(-4,4,0.1)
ly=[f(x) for x in lx]
plt.plot(lx,ly)
plt.show()

On obtient la figure suivante :

Courbe : options

Diagramme en barres

Exemple

On a noté les prix d'un article (en €) dans divers magasins voici les données :

Prix697071727374
Nombre de magasins21611876

Représenter ces résultats en diagramme en barres

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
def diagramme(L_valeurs,L_effectifs):
    " Création d'un diagramme en barres"
    plt.grid ( True )
    plt.xlabel ("Les prix")
    plt.ylabel (" Les effectifs")
    plt.bar( L_valeurs , L_effectifs,color='r') # création d'un diagramme en barres
    plt.show ()
L_valeurs=[69,70,71,72,73,74]
L_effectifs = [2, 16, 11, 8, 7, 6]
diagramme(L_valeurs,L_effectifs)

On obtient le diagramme en barres suivant :

Courbe : options