Matplotlib, une bibliothèque performante et populaire, permet de tracer des graphiques. Elle visualise les données sous de nombreuses formes.
Numpy, une bibliothèque dédiée aux mathématiques, manipule les matrices, les tableaux multidimensionnels. Elle effectue les calculs et les recherches de valeurs avec rapidité.
L'exemple ci-dessous utilise le module Pyplot de la bibliothèque Matplotlib. Les labels pour les axes, le titre et la grille sont facultatifs.
# Importation de la bibliothèque import matplotlib.pyplot as plt # Coordonnées des points liste_x = [1, 2, 4, 5, 7, 8] liste_y = [1, 6, 9, 15, 12, 2] # Labels pour les axes, titre et grille plt.xlabel("L'axe horizontal") plt.ylabel("L'axe vertical") plt.title("Exemple de graphique") plt.grid() # Affichage de la figure plt.plot(liste_x, liste_y, marker='o', color='#00ff00') plt.show()
A tester également :
Ci-dessous, deux listes sont initialisées puis complétées au fur et à mesure. Les coordonnées des points sont calculées par Python.
import matplotlib.pyplot as plt liste_x=[] liste_y=[] x=-5 dx=1 while x<=5 : y=x**2 # y=x**3 # y=2*x-3 liste_x.append(x) liste_y.append(y) x+=dx plt.plot(liste_x, liste_y, marker='o') plt.show()
Une fonction améliore la présentation :
import matplotlib.pyplot as plt def y(x) : return x**2 liste_x=[] liste_y=[] x=-5 dx=1 while x<=5 : liste_x.append(x) liste_y.append(y(x)) x+=dx plt.plot(liste_x, liste_y, marker='o') plt.show()
A tester également :
La bibliothèque NumPy effectue les calculs beaucoup plus rapidement que Python.
Elle manipule les tableaux. Or, Matplotlib fonctionne aussi bien avec les listes que les tableaux.
Les abscisses s'obtiennent avec les méthodes linspace()
ou arange()
de NumPy.
import matplotlib.pyplot as plt import numpy as np tab_x=np.linspace(-5,5,11) # tab_x=np.linspace(-5,5,30) # tab_x=np.arange(-5,6,1) tab_y=tab_x**2 # tab_y=tab_x**3 # tab_y=np.sin(3*tab_x) # tab_y=(4-tab_x**2)**0.5 plt.plot(tab_x, tab_y, marker='o') plt.show()
Avec une fonction :
import matplotlib.pyplot as plt import numpy as np def y(x) : return x**2 tab_x=np.linspace(-5,5,11) tab_y=y(tab_x) plt.plot(tab_x, tab_y, marker='o') plt.show()
A tester également :
arange()
Obtenir le résultat ci-dessous.
Cisco Systems, fabricant de routeurs et autres matériels pour réseaux, propose ce tableau indiquant l'évolution du trafic mensuel sur Internet :
Année | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 |
---|---|---|---|---|---|---|
Volume (Eo) | 122 | 156 | 201 | 254 | 319 | 396 |
Ces valeurs se retrouvent avec la formule : Volume = 5 × (Année - 2014)2 + 76
Travail demandé :
L'évolution annuelle du nombre d'adresses IPv4 disponibles au RIPE-NCC, en millions, est donnée par la formule :
Nombre = 10 ×
A l'aide de NumPy, tracer la courbe montrant l'évolution du nombre d'adresses IPv4 disponibles, pour les années allant de 2015 à 2020.
De manière très simplifiée, la construction d'une maison passe par les étapes :
Un diagramme de Gantt visualise ces tâches.
import matplotlib.pyplot as plt travaux = ["Fondations", "Murs", "Toit"] debut = [0, 5, 8] fin = [1, 8, 12] # Inversion des listes, facultatif travaux = list(reversed(travaux)) debut = list(reversed(debut)) fin = list(reversed(fin)) # Histogrammes horizontaux plt.barh(travaux, fin, color='#669900') plt.barh(travaux, debut, color='#ffffff') # Ajout de titres pour l'axe vertical et la figure plt.xlabel("Jours") plt.title("Planification des travaux") # Affichage du diagramme de Gantt plt.show()
Compléter ce diagramme de Gantt sachant que les menuiseries extérieures :
Tracer, sur un même graphique, les courbes de y1 et y2 en fonction de x.
Obtenir le résultat ci-dessous.