Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

introduction

from matplotlib import pyplot as plt

# pour l'instant on va utiliser le mode par défaut
#%matplotlib inline

# pour changer la taille par défaut
plt.rcParams['figure.figsize'] = (4, 2)

import numpy as np
import pandas as pd

plt.figure(), plt.show()

tracer une courbe avec plt.plot

# le code
x = np.linspace(0, 2*np.pi, 50)
y = np.sin(x)
plt.plot(x, y); # le ; est là afin que la dernière expression du notebook (celle qui est affichée) soit None
<Figure size 400x200 with 1 Axes>
#le code
plt.plot(x, y, marker='s');
<Figure size 400x200 with 1 Axes>
# le code
plt.plot(x, y, linewidth=5, color='red', linestyle='dotted');
<Figure size 400x200 with 1 Axes>
plt.plot(x, y, 'r-') # ligne rouge continue
plt.show()
plt.plot(x, y, 'b.') # ligne bleue pointillée
plt.show()
plt.plot(x, y, 'g--'); # ligne verte pointillée
<Figure size 400x200 with 1 Axes>
<Figure size 400x200 with 1 Axes>
<Figure size 400x200 with 1 Axes>

attention aux valeurs manquantes

# le code
plt.plot([10, 20], [10, 20]);
<Figure size 400x200 with 1 Axes>
# le code
plt.plot([10], [10]);
<Figure size 400x200 with 1 Axes>

ajouter un titre plt.title

# le code
x = np.linspace(0, 2*np.pi, 50)
y = np.sin(x)

plt.plot(x, y)
plt.title('sinus(X)', fontsize=20, loc='left');
<Figure size 400x200 with 1 Axes>

donner une taille à une figure

# le code
x = np.linspace(0, 2*np.pi, 50)
plt.figure(figsize=(10, 2)) # 10 pour les abscisses et 2 pour les ordonnées
plt.plot(x, np.sin(x));
<Figure size 1000x200 with 1 Axes>
#plt.figure?

ajouter des labels aux axes plt.xlabel et plt.ylabel

# le code
x = np.linspace(0, 2*np.pi, 50)
y = np.sin(x)

plt.plot(x, y)
plt.xlabel('X')
plt.xlabel('Y');
<Figure size 400x200 with 1 Axes>
#le code
#plt.xlabel?

nuages de points (plt.scatter)

# le code
x = np.linspace(0, 2*np.pi, 50)
z = np.cos(x)
plt.scatter(x, z);
<Figure size 400x200 with 1 Axes>

donner une légende à plusieurs plots sur la même figure label

x = np.linspace(0, 2*np.pi, 50)
plt.scatter(x, np.sin(x), label='sinus')
plt.scatter(x, np.cos(x), label='cosinus')
plt.legend();
<Figure size 400x200 with 1 Axes>

fixer la limite des axes (plt.xlim et plt.ylim)

# le code
plt.xlim(0, np.pi)
plt.ylim(0,1)
plt.plot(x, np.sin(x))
<Figure size 400x200 with 1 Axes>

préciser les ticks des axes (plt.xticks et plt.yticks)

# le code
x = np.linspace(0, 2*np.pi, 50)

plt.xticks([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi])
plt.yticks([-1, -0.5, 0, 0.5, 1])
plt.plot(x, np.sin(x));
<Figure size 400x200 with 1 Axes>
# le code
x = np.linspace(0, 2*np.pi, 50)

plt.xticks([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi],
           [0, 'pi/2', 'pi', '3pi/2', '2pi'])

plt.plot(x, np.sin(x));
<Figure size 400x200 with 1 Axes>
# le code
plt.xticks([0, np.pi/2, np.pi, 3*np.pi/2, 2*np.pi],
           [0, r'$\pi/2$', r'$\pi$', r'$3\pi/2$', r'$2\pi$'])

plt.title(r"$sin(x)$ entre $0$ et $2\pi$ ")
plt.plot(x, np.sin(x));
<Figure size 400x200 with 1 Axes>
x = np.linspace(0, 2*np.pi, 50)
plt.figure(figsize=(10, 2))
plt.plot(x, np.sin(x))
<Figure size 1000x200 with 1 Axes>

exercice de plot

%matplotlib notebook
# votre code ici

exercice sauver une figure dans un fichier


pour en savoir plus

ceux qui veulent approfondir la question liront avec intérêt ce livre en ligne très complet sur la visualisation en Python, en français