Exercice 73 / 100

Matplotlib — Scatter Plot

ConsigneCrée un nuage de points pour visualiser la corrélation

📖 Cours

Un scatter plot affiche des points (x, y) sans les relier. Idéal pour visualiser la corrélation ou la distribution conjointe de deux variables.

Syntaxe

plt.scatter(x, y)

Personnalisation

plt.scatter(x, y, c='red', couleur unique c=valeurs_numeriques, colorier selon une 3e variable cmap='viridis', palette de couleurs s=20, taille des points s=valeurs, taille selon une variable alpha=0.7, transparence (utile si beaucoup de points) marker='o' forme)

Exemple : corrélation heures/notes

import numpy as npnp.random.seed(42)heures = np.random.uniform(1, 10, 50)notes = 5 + 1.5 * heures + np.random.normal(0, 2, 50) # relation linéaire bruitée
plt.figure(figsize=(8, 5))plt.scatter(heures, notes, alpha=0.7, c='#E8006F')plt.xlabel('Heures d\'étude')plt.ylabel('Note')plt.title('Corrélation heures/notes')plt.savefig('/tmp/scatter.png')

Variables encodées par couleur + taille (bubble chart)

plt.scatter(x, y, c=age, s=salaire/1000, alpha=0.5, cmap='coolwarm')plt.colorbar(label='âge')

Chaque point a une position (x,y), une couleur (3e variable) et une taille (4e variable).

Un point de nuage porte jusqu'à quatre informations à la fois : sa position dit x et y, sa couleur une troisième variable, sa taille une quatrième
Un point de nuage porte jusqu'à quatre informations à la fois : sa position dit x et y, sa couleur une troisième variable, sa taille une quatrième

Ajouter une ligne de tendance

coef = np.polyfit(x, y, 1) # régression linéaireplt.plot(x, coef[0]*x + coef[1], 'r--')

Trop de points (>10 000) saturent l'image — utilise alpha bas (0.1) ou un hexbin (plt.hexbin) qui affiche une densité.

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →