4  📈 Visualisation des DonnĂ©es

4.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.

4.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.

4.1.2 ⚖ Histogramme vs Bar Chart

Comparaison des gĂ©omĂ©tries 1D 🔍 Zoom sur la comparaison

⚠ 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.

4.2 đŸ•”ïžâ€â™‚ïž Mission 4

À l’intĂ©rieur du conteneur, les serveurs tournent Ă  plein rĂ©gime. Vous rĂ©ussissez Ă  pirater la console d’administration et Ă  extraire le journal d’activitĂ© (les “logs”). Celui-ci indique les volumes de donnĂ©es qui ont Ă©tĂ© 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.

4.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”.

4.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).

4.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.

4.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.

{"component":"LlmGeneratedComponent","props":{"height":"700px","prompt":"CrĂ©e un outil interactif pĂ©dagogique : 'L'Anatomie du Boxplot'. \n\nObjectif : Expliquer visuellement les concepts de MĂ©diane, Quartiles (Q1, Q3), Écart Interquartile (IQR) et Outliers.\n\nStructure :\n1. Un plan horizontal avec une sĂ©rie de points (donnĂ©es brutes) que l'utilisateur peut ajouter ou dĂ©placer Ă  la souris.\n2. Juste au-dessus, un Boxplot dynamique qui se recalcule en temps rĂ©el selon la position des points.\n3. Des Ă©tiquettes claires qui s'affichent au survol des composants du Boxplot :\n   - 'MĂ©diane (50%)'\n   - 'Q1 (25%) et Q3 (75%)'\n   - 'Moustaches (1.5 * IQR)'\n   - 'Outliers (Valeurs aberrantes)'.\n\nComportement : Si l'utilisateur dĂ©place un point trĂšs loin des autres, le point doit changer d'apparence (devenir une croix par exemple) et le Boxplot doit marquer ce point comme 'Outlier' au-delĂ  des moustaches. Ajouter un bouton 'RĂ©initialiser' avec un jeu de donnĂ©es standard.","id":"im_349d6bc69ce30f83"}}

4.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.

4.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.

4.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.

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).

4.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.

4.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).

4.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()

[ACTION REQUISE] : Ajouter capture d’écran d’une Heatmap gĂ©nĂ©rĂ©e avec Seaborn montrant un dĂ©gradĂ© coolwarm clair.

4.5 đŸ•č Tableaux de Bord Interactifs

La fin du reporting figé

En 2026, fournir un rapport PDF statique Ă  un dĂ©cideur n’est plus suffisant. L’interactivitĂ© n’est plus un gadget esthĂ©tique, c’est une nĂ©cessitĂ© stratĂ©gique pour le “drill-down” (l’exploration en profondeur). Un dĂ©cideur doit pouvoir zoomer sur une rĂ©gion, filtrer par annĂ©e ou exclure une catĂ©gorie d’un simple clic. C’est ici qu’interviennent les Dashboards (Tableaux de bord).

4.5.1 đŸ•č Le Moteur Plotly

Avant de construire une application web complĂšte, il faut changer la nature de nos graphiques. Avec Matplotlib ou Seaborn, le code gĂ©nĂšre une image “morte” (un fichier PNG).

Avec Plotly, le code Python génÚre un objet web interactif interprété par le navigateur.

  • Avantage immĂ©diat : L’utilisateur peut survoler les points pour lire les valeurs (Hover), zoomer, ou dĂ©sactiver des courbes dans la lĂ©gende.
  • Haute Performance : GrĂące Ă  l’utilisation de WebGL/WebGPU, Plotly peut rendre des millions de points directement dans le navigateur en dĂ©chargeant le calcul sur la carte graphique (GPU) (Plotly 2026).

4.5.2 đŸ„Š Streamlit vs Dash

Pour encapsuler ces graphiques Plotly dans une vraie page web avec des boutons, des menus déroulants et des curseurs, le marché est dominé par deux philosophies.

Streamlit : Le Roi du Prototypage

C’est l’outil adorĂ© des Data Scientists pour crĂ©er un MVP (Minimum Viable Product) en quelques heures.

  • Architecture : Il fonctionne sur un modĂšle de script linĂ©aire. À chaque fois que l’utilisateur clique sur un bouton, le script entier est rĂ©-exĂ©cutĂ© de haut en bas.
  • La limite : Cette exĂ©cution linĂ©aire peut ĂȘtre catastrophique en termes de performance si votre code charge un fichier de 5 Go Ă  chaque clic. Il faut donc impĂ©rativement maĂźtriser le systĂšme de cache (@st.cache_data) pour mettre les donnĂ©es en mĂ©moire.

Dash by Plotly : L’Échelle Entreprise

C’est le choix privilĂ©giĂ© pour des applications de production robustes et complexes (Gotsman 2026).

  • Architecture : Il repose sur Flask et React.js. Il utilise un systĂšme de callbacks asynchrones. Si l’utilisateur clique sur un filtre, seul le graphique concernĂ© est recalculĂ© et rechargĂ©, pas toute la page.
  • La limite : Une courbe d’apprentissage beaucoup plus abrupte et le risque du “Callback Hell” (quand des dizaines de fonctions de mise Ă  jour s’entrecroisent et deviennent impossibles Ă  maintenir).

4.5.3 đŸ—ïž Architecture d’ExĂ©cution

Pour concevoir des applications fluides et performantes, il est crucial de comprendre comment la structure interne du framework rĂ©agit aux interactions de l’utilisateur :

flowchart LR
    subgraph Streamlit [Streamlit : Exécution Linéaire]
        S1[Clic Bouton] --> S2[Rechargement complet du script]
        S2 --> S3[Rechargement Data\n'sauf si cache']
        S3 --> S4[Mise Ă  jour Page]
    end

    subgraph Dash [Dash : Callbacks Asynchrones]
        D1[Clic Bouton] --> D2{Callback associé}
        D2 --> D3[Recalcul spécifique]
        D3 --> D4[Mise Ă  jour du Composant Uniquement]
    end
    
    style Streamlit fill:#dc322f,stroke:#073642,color:#fdf6e3
    style Dash fill:#859900,stroke:#073642,color:#fdf6e3

4.5.4 ⚡ RĂ©volution ZĂ©ro Latence

Construire des tableaux de bord interactifs sur de l’énorme volumĂ©trie (Big Data) Ă©tait autrefois synonyme d’interface lente (l’application “freeze” pendant le calcul). L’écosystĂšme Python a rĂ©solu cela en 2026 via deux avancĂ©es :

  1. L’architecture Apache Arrow : Elle permet le “Zero-copy”. Les donnĂ©es circulent entre votre moteur de calcul (Polars) et votre dashboard web sans nĂ©cessiter de coĂ»teuses conversions de formats (Narendran 2026).
  2. CPython 3.14 (Free-threading) : Le verrou global (GIL) de Python ayant Ă©tĂ© supprimĂ©, les serveurs de dashboards peuvent enfin utiliser le vĂ©ritable multi-threading pour calculer les filtres des utilisateurs en parallĂšle sur plusieurs cƓurs.

[ACTION REQUISE] : Ajouter capture d’écran d’un Dashboard Streamlit complet (avec sidebar, filtres et graphique interactif Plotly).

4.6 🌉 Conclusion et Transition

La visualisation nous permet de communiquer des informations complexes de maniĂšre intuitive. Maintenant que nous maĂźtrisons l’exploration et la visualisation, nous sommes prĂȘts Ă  passer Ă  l’étape de la modĂ©lisation pour prĂ©dire des tendances ou classer des donnĂ©es.

C’est le cƓur du Chapitre 5 : ModĂ©lisation et Machine Learning.

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/.
Gotsman, Tom. 2026. “Streamlit Vs. Dash for Python Dashboards: Which One Should You Actually Use? (April 2026).” Reflex Blog. https://reflex.dev/blog/streamlit-vs-dash-python-dashboards/.
Narendran, Aanchal. 2026. “Polars + DuckDB: The New Power Combo for in-Process Analytics.” Open Source For You. https://www.opensourceforu.com/2026/03/polars-duckdb-the-new-power-combo-for-in-process-analytics/.
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/.
Plotly. 2026. “High Performance Visualization in Python.” https://plotly.com/python/performance/.
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.