Tracer des graphiques avec Matplotlib#

Une bibliothèque simple et directe pour tracer des données est matplotlib.

Voir aussi :

import math
import matplotlib.pyplot as plt

Pour tracer, nous avons besoin de valeurs à représenter. Commençons par une liste de valeurs x :

x_values = range(0, 360, 10)

Pour calculer les valeurs y correspondantes, nous utilisons une boucle for qui crée une nouvelle liste de valeurs égale à la liste x_values et calcule un nouveau nombre pour chaque entrée :

y_values = [math.sin(x * math.pi / 180) for x in x_values]

Ensuite, traçons un graphique simple

plt.plot(x_values, y_values)
[<matplotlib.lines.Line2D at 0x12aa15610>]
../_images/e620deb89cbd86f3fa569913c33be9a662f355a9cb1f19b1f010b89ca3e02773.png

Les graphiques peuvent être modifiés de différentes manières.

plt.plot(x_values, y_values, '*')
[<matplotlib.lines.Line2D at 0x12ab6c3d0>]
../_images/0a8dc69416fee0a0dee663e5ea57d64e73b7add7f64c73002e9ad42a15ec904d.png
plt.plot(x_values, y_values, color='green')
[<matplotlib.lines.Line2D at 0x12abddc10>]
../_images/223e0f53524726bdd7a51920c7e3366c9b83969d7fd6f624a6d40c5a0f473c3a.png

Si vous voulez combiner plusieurs graphiques dans une seule figure, vous pouvez faire ceci :

plt.plot(x_values, y_values, color='green')

neg_y_values = [- y for y in y_values]
plt.plot(x_values, neg_y_values, color='magenta')
[<matplotlib.lines.Line2D at 0x12ac5d130>]
../_images/21c6eb19fb9e7e94958e202524cdd399ca30e4f0e9f8c1efdb5240fbc941e6ff.png

Sous-graphiques#

La commande subplots vous permet d’avoir plusieurs graphiques dans un seul bloc.

fig,axs = plt.subplots(1, 2)

axs[0].plot(x_values, y_values, color='green')
axs[1].plot(x_values, neg_y_values, color='magenta')
[<matplotlib.lines.Line2D at 0x12acffc10>]
../_images/e4918ad866cee2a895f19a0566ef5427879e3ed0cd8956fd945edb2fc09da501.png
fig,axs = plt.subplots(2, 3, figsize=[15,10])

axs[0,0].plot(x_values, y_values, color='green')
axs[0,1].plot(x_values, neg_y_values, color='magenta')
axs[0,2].plot(x_values, neg_y_values, color='red')
axs[1,0].plot(x_values, neg_y_values, color='cyan')
axs[1,1].plot(x_values, neg_y_values, color='blue')
axs[1,2].plot(x_values, neg_y_values, color='yellow')
[<matplotlib.lines.Line2D at 0x12aec7190>]
../_images/2e7519c2ff22eb883482bc2389850013237ae38d70b7b76b4c5955f5884f84f8.png

Exercice#

Tracez le sinus et le cosinus des valeurs entre 0 et 360 degrés sur un même graphique.