3  📈 Visualisation des Données

3.1 📊 Distribution du Signal

💡 Concept Clé : La Grammaire des Graphiques

Avant de coder, il faut comprendre l’anatomie d’une image. La Data Visualisation moderne repose sur la Grammar of Graphics : une décomposition en couches indépendantes (Données, Esthétiques, Géométries). Un mauvais choix graphique est une faute d’enquête qui induit le décideur en erreur.

Quand on explore une seule variable (Analyse 1D), l’objectif est de comprendre sa distribution ou sa composition.

3.1.1 🔎 Les Géométries de Référence

  1. L’Histogramme (Continu) : L’outil roi pour analyser une variable quantitative (ex: Salaire). Les barres sont adjacentes (aucun espace) pour symboliser la continuité mathématique.
  2. Le Diagramme à Barres (Discret) : Compare des catégories distinctes (ex: Ville). Il y a toujours un espace entre les barres.
  3. Le Diagramme Circulaire (Camembert) : À limiter strictement à 2 ou 3 catégories (ex: Oui/Non). L’œil humain gère mal les angles ; préférez un Bar Chart pour plus de précision.

3.1.2 ⚖️ Histogramme vs Bar Chart

📊 Histogramme vs Bar Chart

Sélectionnez le type de graphique et modifiez les paramètres pour observer comment la géométrie de l’histogramme (continu, barres adjacentes) diffère de celle du diagramme à barres (discret, barres espacées).

3.1.3 🍕 Le Diagramme Circulaire (Camembert) & Diagramme en Anneau (Donut)

Le Diagramme Circulaire (ou Pie Chart) est l’une des géométries les plus populaires du grand public, mais aussi l’une des plus critiquées par les experts en Dataviz.

⚙️ Principes fondamentaux

  • But unique : Représenter les parties d’un tout (la somme des secteurs doit impérativement être égale à 100\%).
  • La Règle d’or : Limiter l’usage à 2 ou 3 catégories maximum. Au-delà, le graphique devient illisible.
  • Le Diagramme en Anneau (Donut Chart) : Cette variante moderne évide le centre du cercle. Cela présente deux avantages : l’œil humain se focalise sur la longueur des arcs plutôt que sur l’aire ou l’angle (ce qui est cognitivement plus facile), et l’espace vide au centre permet d’afficher une métrique clé ou un titre informatif.

⚠️ Les Limitations Cognitives (Pourquoi il faut s’en méfier)

Le cerveau humain n’a pas été conçu pour comparer des angles ou des aires géométriques sur un écran plat. Il excelle en revanche pour comparer des longueurs sur une ligne de référence commune.

🍕 Le Diagramme Circulaire sous la loupe cognitive

Sélectionnez le type de représentation et le nombre de catégories. Observez comment l’augmentation du nombre de tranches nuit gravement à la précision de votre analyse, et à quel point le Bar Chart linéaire rétablit instantanément la clarté :

⚠️ Danger : Le Biais Visuel

N’utilisez jamais de 3D décorative sur vos graphiques. Cela introduit des distorsions de perspective qui faussent la perception des proportions. Un enquêteur doit rester factuel.

🎒 Astuce Pro : Choix de la couleur

Utilisez la couleur pour mettre en évidence une anomalie ou une catégorie spécifique, et non pour faire du “coloriage”. Chaque variable visuelle doit porter une information.

3.2 🕵️‍♂️ Mission 3

Vous arrivez en trombe sur le quai n°7. La “Mouette” est amarrée. Dans la cabine de pilotage laissée ouverte, vous repérez le terminal de contrôle de la console d’administration. Vous réussissez à y accéder et à extraire le journal d’activité (les “logs”) qui indique les volumes de données exfiltrés par Charlie.

Exécutez cette cellule pour consulter le journal intercepté :

import pandas as pd
import matplotlib.pyplot as plt

# Logs des volumes de données exfiltrés
donnees_logs = {
    'cible': ['Dossiers_Scolaires', 'Sujets_Examens', 'Bulletins_Notes', 'Comptabilite', 'Mots_de_Passe'],
    'volume_mo': [150, 3200, 420, 80, 15]
}
df_logs = pd.DataFrame(donnees_logs)

print("Logs d'exfiltration interceptés.")
display(df_logs)

Un simple tableau de chiffres est parfois difficile à interpréter dans l’urgence. Un bon détective sait faire parler les données avec un graphique !

Votre objectif : Compléter le code pour générer un graphique en barres afin d’identifier visuellement quelle cible a été la plus touchée, puis consigner votre conclusion dans votre rapport.

3.3 📈 Visualisation Bidimensionnelle

Chercher la structure

Passer d’une à deux variables, c’est comme passer d’une photo d’identité à un film : on commence à voir du mouvement et des interactions. En analyse 2D, on ne cherche plus seulement à savoir “comment est la donnée”, mais “comment l’une influence l’autre”.

3.3.1 🌌 Le Nuage de Points (Scatter)

Le Scatter Plot est l’outil souverain pour détecter les corrélations, les groupes naturels (clusters) et les densités de points (Around Data Science 2026).

  • Usage : Idéal pour deux variables numériques continues.
  • Ce qu’il révèle : Une ligne droite (corrélation linéaire), une courbe (non-linéaire), ou des “paquets” isolés qui suggèrent que vos données sont divisées en segments distincts (ex: clients économes vs clients dépensiers).

Interactif : Explorer un Nuage de Points

Découvrez comment les corrélations mathématiques et les segmentations se matérialisent visuellement sur un nuage de points. Ajustez le type de relation et faites varier le bruit (dispersion) :

🌌 Le Nuage de Points Dynamique

3.3.2 📈 Le Graphique Linéaire (Line)

Le Line Plot connecte les points entre eux. Cette connexion n’est pas qu’esthetique : elle implique un lien de continuité ou de causalité temporelle.

  • Règle d’or : À réserver strictement aux séries temporelles ou aux séquences ordonnées. Si l’ordre des points sur l’axe X peut être mélangé sans perdre de sens, alors vous ne devez pas utiliser de ligne.

Interactif : La Règle d’Or du Graphique Linéaire

Expérimentez l’effet d’un mauvais ordre sur l’axe X. Constatez comment le désordre transforme une courbe de tendance temporelle propre en un gribouillage illisible (Spaghetti Plot) :

📈 Le Tracé Linéaire Dynamique

3.3.3 📦 La Boîte à Moustaches (Boxplot)

Le Boxplot est l’instrument de précision pour comparer une variable continue (ex: Salaire) à travers plusieurs catégories (ex: Métier).

  • La Médiane : La barre centrale, robuste aux extrêmes.
  • La Boîte (IQR) : Contient les 50 % centraux de vos données.
  • Les Moustaches : Montrent la dispersion.
  • Les Outliers : Les points isolés au-delà des moustaches, souvent des anomalies de capteurs ou des cas exceptionnels.

Interactif : Décoder un Boxplot

Le Boxplot est souvent mal compris par les néophytes. Utilisez ce simulateur pour manipuler les points de données et voir comment la boîte, les moustaches et les “outliers” réagissent en temps réel.

📦 L’Anatomie du Boxplot

Modifiez les curseurs pour ajuster la position des points A à F, et observez en temps réel l’impact direct sur la médiane, la boîte interquartile (Q1-Q3), les moustaches et la détection des valeurs aberrantes (outliers).

3.3.4 🌳 Choix des Graphiques 2D

Pour sélectionner instantanément le bon graphique bidimensionnel selon le type de vos variables et la présence d’une dimension temporelle, suivez cet arbre décisionnel :

flowchart TD
    A[Analyse 2D] --> B{Types de variables ?}
    B -->|Numérique + Numérique| C{Temporalité ?}
    C -->|Oui| D[Line Plot]
    C -->|Non| E[Scatter Plot]
    
    B -->|Numérique + Catégorielle| F[Boxplot ou Bar Plot]
    
    style D fill:#268bd2,stroke:#073642,color:#fdf6e3
    style E fill:#268bd2,stroke:#073642,color:#fdf6e3
    style F fill:#cb4b16,stroke:#073642,color:#fdf6e3

[ACTION REQUISE] : Ajouter capture d’écran d’un Scatter Plot avec une droite de régression et un Boxplot comparatif générés avec Plotly.

3.4 🧊 Visualisation Multidimensionnelle

Repousser les limites cognitives

L’augmentation de la dimensionnalité d’un graphique (passer de 2 à 3, 4 ou 5 variables) doit respecter une hiérarchie visuelle stricte pour éviter la saturation cognitive. Un graphique surchargé n’informe plus, il embrouille. C’est ici que l’ingénieur doit jouer avec les attributs pré-attentifs comme la couleur, la taille ou la forme.

3.4.1 🎛️ Représentation de 3 Variables

Lorsque l’on a deux variables numériques (X et Y) et une troisième variable quantitative (Z) ou catégorielle, plusieurs stratégies s’offrent à nous.

L’encodage par la taille (Bubble Plot)

C’est un Scatter Plot (Nuage de points) classique, mais la taille de chaque point varie en fonction de la troisième variable (Z).

  • Exemple : X = PIB par habitant, Y = Espérance de vie, Taille du point = Population du pays.

🫧 Le Bubble Plot en Action (4 Dimensions sur un Plan)

Survolez les bulles pour inspecter les métriques en 4D de chaque pays. Modifiez la variable encodée par la taille (Z) ou par la couleur pour voir le graphique s’adapter instantanément :

L’encodage par la couleur (Heatmap / Carte de Chaleur)

La Heatmap représente l’intensité ou la magnitude d’une variable Z sur un quadrillage 2D en utilisant un dégradé de couleurs.

  • Usage phare : Afficher une Matrice de Corrélation. Plutôt que de lire un grand tableau de chiffres, l’œil repère instantanément les carrés rouge foncé (forte corrélation positive) ou bleu foncé (corrélation négative).

🔥 La Heatmap de Corrélation

Changez le scénario d’étude marketing et survolez les cellules de la matrice de corrélation pour analyser les relations positives, négatives ou indépendantes entre les variables :

3.4.2 🧊 Le Piège de la 3D Décorative

L’ajout d’un troisième axe physique (Z) permet de créer des graphiques de surface ou des nuages de points en vraie 3D (très bien gérés par des outils comme Plotly).

Proscription de la 3D inutile

En dehors des surfaces topographiques réelles (la géographie) ou de la physique des matériaux, la 3D introduit des distorsions de perspective qui rendent la lecture des valeurs imprécise sur un écran plat. Tourner un graphique 3D est impressionnant techniquement, mais c’est souvent une erreur de design analytique majeure si une Heatmap 2D suffisait.

3.4.3 🌍 Cartes Géographiques

Dès que vos données contiennent des latitudes/longitudes ou des codes postaux, le meilleur graphique est souvent une carte.

  • Folium : Basée sur la librairie JavaScript Leaflet, c’est le standard pour intégrer des cartes interactives (zoomables) avec des marqueurs directement dans un Notebook Jupyter (Papareddy and Gotsman 2025).
  • La Carte Choroplèthe : Les régions géographiques (pays, départements) sont colorées en fonction d’une variable statistique (ex: densité de population). Cela nécessite de croiser vos données Pandas avec des fichiers de géométrie (GeoJSON ou Shapefile) gérés par GeoPandas (Sharma 2024).

🗺️ La Carte Choroplèthe Dynamique

Sélectionnez la variable statistique pour voir la carte choroplèthe se colorer dynamiquement. Survolez chaque région vectorielle pour afficher sa fiche d’identité et ses détails économiques :

3.4.4 💻 Implémentation

import seaborn as sns
import matplotlib.pyplot as plt

# Calcul de la matrice de corrélation
corr_matrix = df.corr()

# Génération de la Heatmap
plt.figure(figsize=(10, 8))
sns.heatmap(
    corr_matrix, 
    annot=True,        # Affiche la valeur numérique dans la case
    cmap='coolwarm',   # Dégradé de couleurs (Bleu au Rouge)
    vmin=-1, vmax=1    # Fixe l'échelle absolue de corrélation
)
plt.title("Matrice de Corrélation des Variables")
plt.show()

3.4.5 🕸️ Le Diagramme Radar (Spider Chart)

Le Diagramme Radar (ou diagramme en araignée, diagramme de Kiviat) permet d’afficher plusieurs variables quantitatives (généralement entre 4 et 8) sur des axes radiaux partant d’un centre commun.

⚙️ Principes fondamentaux

  • Projection polaire : Chaque axe représente une dimension ou une caractéristique statistique. Les scores ou valeurs sont projetés sur ces axes radiaux et connectés pour former un polygone.
  • Usage recommandé : Idéal pour comparer des profils ou des performances de différentes entités sur un ensemble de critères communs (par exemple, le profil de compétences d’un candidat, les fonctionnalités d’un logiciel, ou les spécifications techniques de plusieurs matériels).

⚠️ Les Pièges Majeurs du Radar Chart

Bien que visuellement attrayant, le diagramme radar comporte des failles de conception critiques que l’enquêteur de données doit maîtriser : 1. La subjectivité de l’ordre des axes : La forme du polygone et l’aire perçue par le cerveau changent radicalement si l’on modifie l’ordre d’affichage des axes, alors que les données numériques restent strictement identiques. 2. L’occlusion : Dès que l’on superpose plus de 2 ou 3 profils, les polygones translucides se croisent, rendant la lecture extrêmement complexe et confuse. 3. L’échelle commune trompeuse : Il exige que toutes les variables soient ramenées à une échelle normalisée commune (ex: de 0 à 10). Mélanger des euros, des pourcentages et des âges sans normalisation stricte détruit toute la valeur analytique du graphique.

🕸️ Le Diagramme Radar Interactif : Biais d’Ordre et Surcharge

Manipulez les contrôles ci-dessous pour tester l’affichage des compétences des astronautes. Commutez l’ordre des axes pour observer le biais géométrique flagrant d’interprétation visuelle :

3.4.6 🪟 Visualisation à Haute Dimension : L’ACP / PCA

Imaginez que vous ayez une base de données avec 50 colonnes (dimensions) différentes pour décrire des produits ou des profils clients. Comment visualiser ces points sur un écran plat en 2D ou en 3D ? Il est physiquement et cognitivement impossible de représenter 50 axes orthogonaux simultanément.

C’est ici qu’intervient la PCA (Principal Component Analysis / Analyse en Composantes Principales), une technique fondamentale de réduction de dimensionnalité (Inconnu 2026).

🪄 Le Concept Mathématique

Au lieu de simplement jeter à la poubelle 48 variables sur 50, la PCA effectue un changement de repère géométrique. Elle crée de nouvelles variables artificielles appelées Composantes Principales (PC1, PC2, etc.) qui sont des combinaisons linéaires des variables d’origine.

  • PC1 (Première composante) : C’est l’axe sur lequel les données sont le plus étalées (variance maximale).
  • PC2 (Deuxième composante) : Perpendiculaire à la première, elle capture le maximum de la variance restante.
  • Le Ratio de Variance Expliquée : Indique le pourcentage de l’information d’origine conservé par chaque composante. En projetant les données sur un plan 2D constitué de PC1 et PC2, on peut souvent conserver 70% à 90% de l’information totale d’un jeu de données complexe.

🪄 Le Simulateur de Rotation d’axes PCA / ACP

Visualisez comment la PCA trouve la direction optimale. Faites glisser le curseur pour orienter l’axe rouge PC1. Observez comment la variance expliquée grimpe pour atteindre son maximum (94%) uniquement lorsque la droite est parfaitement alignée avec le grand axe de l’ellipse :

🎯 L’Objectif en EDA et Visualisation

La PCA n’est pas un modèle prédictif final, mais un outil d’exploration visuelle ultra-puissant :

  1. Cartographie 2D : Projeter des données multi-dimensionnelles sur un plan 2D pour repérer visuellement des groupes (clusters) ou des comportements hors normes (outliers).
  2. Réduction du bruit : Éliminer la redondance d’information en éliminant les variables d’entrée fortement corrélées entre elles.

💻 Implémentation PCA avec Scikit-Learn

Voici comment compresser et visualiser des données à haute dimension en 2D avec Python :

from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
import seaborn as sns
import matplotlib.pyplot as plt

# 1. La PCA nécessite impérativement de standardiser les données au préalable
# (sinon les variables à forte échelle écrasent le calcul).
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# 2. Instanciation et calcul de la PCA pour 2 dimensions
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)

# 3. Récupération de la variance expliquée
print(f"Variance capturée par PC1 + PC2 : {sum(pca.explained_variance_ratio_)*100:.1f}%")

# 4. Rendu visuel 2D du dataset à haute dimension
plt.figure(figsize=(8, 6))
sns.scatterplot(
    x=X_pca[:, 0], 
    y=X_pca[:, 1], 
    hue=y,             # Coloration selon la classe cible
    palette='viridis',
    alpha=0.8
)
plt.xlabel(f"PC1 ({pca.explained_variance_ratio_[0]*100:.1f}% de variance)")
plt.ylabel(f"PC2 ({pca.explained_variance_ratio_[1]*100:.1f}% de variance)")
plt.title("Visualisation 2D via Analyse en Composantes Principales (PCA)")
plt.grid(True, linestyle='--', alpha=0.5)
plt.show()

🕹️ Simulateur Interactif de Réduction de Dimension (PCA vs Projection Naïve)

Manipulez les contrôles ci-dessous pour projeter un jeu de données à 4 dimensions sur un plan 2D. Observez comment la PCA réoriente le repère pour séparer les classes de façon optimale, contrairement aux axes bruts qui mélangent les informations.

💡 Analyse Pédagogique : Pourquoi la PCA surclasse la Projection Naïve ?

3.4.7 🧊 La Visualisation en 3D : Richesse et Illusions Optiques

Lorsque vous faites face à 3 variables quantitatives continues (X, Y et Z), l’instinct pousse souvent à vouloir modéliser les données dans un espace physique tridimensionnel (3D) en utilisant des outils de rendu volumique ou des nuages de points 3D (comme mpl_toolkits.mplot3d en Matplotlib ou les graphiques rotatifs dans Plotly).

Si la 3D interactive est techniquement impressionnante, elle pose des problèmes analytiques et perceptifs majeurs qui la rendent souvent déconseillée en Dataviz classique.

⚠️ Pourquoi la 3D est-elle si difficile à lire ?

  1. La distorsion de perspective (Perspective Distortion) : Sur un écran plat, un point éloigné est rendu plus petit pour donner l’illusion de la profondeur. Cette projection géométrique détruit la capacité de l’œil humain à projeter mentalement la position d’un point sur les axes plats X, Y ou Z.
  2. L’occlusion et le masquage (Occlusion) : Les points situés au premier plan cachent physiquement les points situés en arrière-plan. Pour voir l’ensemble du jeu de données, le lecteur est contraint de tourner le graphique en continu, rendant impossible une capture d’écran statique ou une impression papier exploitable.
  3. Le piège de la flottaison (Floating Point Trap) : Sans ligne de rappel reliant le point 3D à une surface de référence (le sol du graphique), un point semble flotter dans le vide. Deux points qui apparaissent adjacents à l’écran peuvent en réalité être extrêmement distants sur l’axe de la profondeur.

🧊 Expérience Interactive : Le Piège de la Perspective 3D

Faites tourner le cube 3D à l’aide de la glissière ci-dessous. Survolez les points pour découvrir leurs coordonnées réelles.

Le Piège : Décochez la case 📏 Lignes de rappel Z (sol). Constatez à quel point il devient instantanément impossible de deviner quelle maison est la plus chère ou la plus grande sans ces fils de rappel bleus reliant les points au plan du sol !

💻 Implémentation de Nuages de Points 3D en Python

Voici comment implémenter un graphique tridimensionnel en Python avec Matplotlib :

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

# Données synthétiques
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection='3d')

# Scatter plot 3D
sc = ax.scatter(
    df['Taille'], 
    df['Prix'], 
    df['Pieces'], 
    c=df['Prix'], # Couleur proportionnelle au prix
    cmap='viridis', 
    s=60
)

# Lignes de rappel vers le sol (Optionnel mais crucial pour la lisibilité !)
for x, y, z in zip(df['Taille'], df['Prix'], df['Pieces']):
    ax.plot([x, x], [y, y], [0, z], color='gray', linestyle='--', alpha=0.5)

ax.set_xlabel('Taille (m²)')
ax.set_ylabel('Prix (k€)')
ax.set_zlabel('Nombre de Pièces')
plt.title("Nuage de Points 3D avec Lignes de Rappel")
plt.colorbar(sc, label='Prix')
plt.show()

3.5 🌉 Conclusion et Transition

La visualisation nous permet de représenter des informations complexes de manière intuitive. Forts de ces bases graphiques, nous sommes maintenant armés pour mener une analyse exploratoire approfondie afin d’extraire des relations statistiques et des corrélations cachées.

C’est le cœur du Chapitre 4 : Analyse Exploratoire des Données (EDA).

Around Data Science. 2026. “Matplotlib Vs Seaborn Vs Plotly for EDA, Dashboards, and Production.” https://arounddatascience.com/blog/data-visualization/matplotlib-vs-seaborn-vs-plotly-for-eda-dashboards-and-production/.
Inconnu. 2026. “5.ml.md (Modélisation Et Machine Learning).”
Papareddy, SP Sumanth, and Tom Gotsman. 2025. “Top 10 Python Data Visualization Libraries in 2025.” Reflex Blog. https://reflex.dev/blog/top-10-data-visualization-libraries/.
Sharma, Vinay Kumar. 2024. “Top 6 Python Data Visualization Libraries (2026).” Kellton. https://www.kellton.com/kellton-tech-blog/6-powerful-libraries-in-python-for-data-visualization.