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
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
- 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.
- Le Diagramme à Barres (Discret) : Compare des catégories distinctes (ex: Ville). Il y a toujours un espace entre les barres.
- 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
â ïž 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 :
[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 :
- 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).
- 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.