Visualisation de Données en Python
Dr. Amine Khouildi
15 février 2025
Sommaire
▶ Concepts de base de la visualisation de données
▶ Configuration Python Bibliothèques principales
▶ Exemples de code et comparaisons
▶ Graphiques à éviter et recommandations
Chart Chooser
Importance du Choix de l’Outil de Visualisation
Le choix d’un outil de visualisation est crucial. Les critères
incluent :
▶ Vitesse d’itération.
▶ Flexibilité et esthétique.
▶ Compatibilité avec l’environnement de travail.
Pourquoi la Visualisation de Données ?
On utilise la visualisation de données pour simplifier les décisions
complexes grâce à une représentation visuelle. Les avantages sont :
▶ Compréhension rapide et approfondie des données.
▶ Mise en contexte des informations complexes.
▶ Support pour l’analyse de données commerciales.
Les Types de Graphiques Principaux
▶ BARPLOT : Représente des valeurs par des barres verticales
ou horizontales, utile pour comparer des catégories.
▶ HISTOGRAMME : Montre la distribution de données
numériques en regroupant les valeurs en classes.
▶ DIAGRAMME DE DISPERSION (SCATTER PLOT) :
Affiche la relation entre deux variables numériques, chaque
point représentant une observation.
▶ COURBE (LINE CHART) : Représente l’évolution d’une
variable dans le temps ou par rapport à une autre variable,
utile pour visualiser des tendances.
Mentions Spéciales
▶ BOXPLOT : Résume la distribution de variables numériques
en indiquant les quartiles et les valeurs aberrantes.
▶ DIAGRAMME DE SANKEY : Affiche les flux avec des liens
lissés, idéal pour visualiser des processus ou des transferts.
▶ CARTE CHOROPLÈTHE : Montre une valeur agrégée pour
chaque région d’une carte, en utilisant des couleurs pour
indiquer les variations.
Visualisation avec Python
Matplotlib : Grand-papa du traçage Python
▶ Bibliothèque de traçage
de bas niveau
▶ Interface de type Matlab,
idéale pour ceux qui ont
une expérience en Matlab.
▶ Très flexible
▶ Permet un contrôle
complet sur tous les
éléments des graphiques.
▶ Adaptée aux
personnalisations
détaillées et
configurations avancées.
▶ Inconvénients
▶ Verbeux
▶ Esthétique limitée
▶ Difficulté avec Pandas
Visualisation de Niveau Supérieur
▶ Pandas – API de
visualisation intégrée aux
objets DataFrame et Series,
avec interface vers
Matplotlib.
▶ Seaborn – Étend et fournit
une API de haut niveau sur
Matplotlib avec un style
amélioré.
▶ Altair – Basé sur la
grammaire de visualisation
”Vega-Lite”. Permet des
graphiques interactifs dans
les notebooks Jupyter.
Échantillon de Données
▶ Jeu de données pertinent d’EdgeTier sur la performance du
système de chat.
▶ Agents répondant aux chats des clients provenant de
différents sites web et langues.
▶ 5477 chats répartis entre 100 agents.
Bar Plot - Le Graphique en Barres
Le Graphique en Barres - Matplotlib
chats_per_user = data .
groupby ( ’ user_id ’) [ ’
chat_id ’ ]. count () .
reset_index () Index user id number chats
chats_per_user . columns = [ ’ 49 User 1395 406
user_id ’ , ’ number_chats
1 User 1251 311
’]
chats_per_user = 78 User 1495 283
chats_per_user . 79 User 1497 276
sort_values ( ’ 39 User 1358 236
number_chats ’ ,
ascending = False )
chats_per_user . head ()
▶ Les bibliothèques de visualisation Python nécessitent souvent
des données pré-formatées pour la visualisation.
▶ Pour Pandas et Matplotlib, les bibliothèques de visualisation
présentent souvent uniquement les valeurs et ne réalisent pas
de calculs.
Exemple : Bar Plot avec Matplotlib
La fonction ”.bar()” effectue le travail, en positionnant
manuellement les étiquettes et positions de l’axe ‘x’. La majorité
du code ici concerne le formatage et l’affichage.
Exemple : Bar Plot avec Pandas
▶ La sortie du graphique est en Matplotlib-même manipulation.
▶ API légèrement plus simple
▶ accès aux données facilité.
Exemple : Bar Plot avec Seaborn
▶ Accès simplifié aux données.
▶ Compatibilité avec les fonctions de formatage de Matplotlib
▶ Esthétique par défaut améliorée : Seaborn produit des
graphiques attractifs sans ajustements supplémentaires.
▶ Adapté aux DataFrames de Pandas : idéal pour l’analyse
exploratoire et les visualisations rapides.
Exemple : Bar Plot avec Altair
▶ Indépendant de Matplotlib : Cette bibliothèque n’utilise pas
Matplotlib.
▶ Commande unique : Une seule commande suffit pour créer
un graphique.
▶ Format JSON en arrière-plan : On utilise une structure de
données appelée JSON en coulisses.
Résumé
Graphiques en Barres Empilées
Pour les 20 meilleurs agents, quelle a été la répartition des
principaux sites web ? Nous souhaitons une ≪ barre empilée ≫ pour
cette visualisation.
Les barres empilées sont utilisées pour comparer les valeurs de
sous-catégories dans chaque catégorie.
▶ Affiche plusieurs données sur la même barre.
▶ Permet une visualisation des proportions dans chaque
catégorie.
Stacked Bar Plot avec Matplotlib
Description : Graphique en barres empilées montrant le nombre
de discussions par utilisateur et par site.
Stacked Bar Plot avec Pandas
Le code de traçage est simple, mais une manipulation des données
est nécessaire.
Stacked Bar Plot avec Seaborn
API élégante, structure de code
simple, mais. . . . . .
malheureusement. . . pas de
support pour les graphiques en
barres empilées.
Stacked Bar Plot avec Altair
Sortie simple, code court.
Quelques problèmes liés au
stockage des données, aux
formats JSON, et le tri est
difficile.
Histogrammes
Histogrammes
Diagrammes de Dispersion (Scatter Plot)
Diagrammes de Dispersion (Scatter Plot)
Le scatter plot est utilisé pour afficher la relation entre deux
variables numériques.
▶ Chaque point représente une observation avec deux
coordonnées (x, y).
▶ Utile pour visualiser des tendances ou des corrélations entre
variables.
Exemple : Scatter Plot avec Pandas
Exemple : Scatter Plot avec Seaborn
Exemple : Scatter Plot avec Altair
Courbes en Ligne (Line Chart)
Line Chart
Le line chart est souvent utilisé pour représenter l’évolution d’une
variable numérique au fil du temps.
▶ Représente des points connectés par des lignes pour illustrer
une tendance.
▶ Idéal pour des données séquentielles, comme les séries
temporelles.
Exemple : Line Chart avec Pandas
Exemple : Line Chart avec Seaborn
Exemple : Line Chart avec Altair
Box Plot
Le box plot est un graphique statistique montrant la dispersion
d’un ensemble de données :
▶ Indique les quartiles, la médiane et les valeurs aberrantes.
▶ Utile pour repérer les valeurs extrêmes et la symétrie des
données.
Exemple : Box Plot avec Matplotlib
Création d’un box plot avec Matplotlib :
1 data = [ np . random . normal (0 , std , 100) for std in range
(1 , 4) ]
2 plt . boxplot ( data , patch_artist = True )
3 plt . title ( " Box Plot " )
4 plt . xlabel ( " Groupe " )
5 plt . ylabel ( " Valeurs " )
6 plt . show ()
Exemple : Box Plot avec Seaborn
Utilisation de Seaborn pour un box plot avec catégories :
1 sns . boxplot ( x = " day " , y = " total_bill " , data = tips )
2 plt . title ( " Box Plot des Pourboires par Jour " )
3 plt . xlabel ( " Jour " )
4 plt . ylabel ( " Total du Pourboire " )
5 plt . show ()
Autres options
Bonnes Pratiques pour la Visualisation de Données
▶ Choisissez le graphique adapté : utilisez un graphique qui
reflète bien la nature de vos données.
▶ Assurez la lisibilité : choisissez des tailles et des couleurs
visibles et harmonieuses.
▶ Simplifiez au maximum : évitez les éléments décoratifs qui
nuisent à la compréhension.
▶ Vérifiez l’échelle : assurez-vous que les échelles utilisées sont
justes et ne trompent pas l’interprétation.
Exemple 1 de Pièges à Éviter
Graphiques en Secteurs : Évitez les pie charts lorsque la précision
est cruciale, car ils rendent difficile la comparaison des proportions.
Exemple 2 de Pièges à Éviter
Comparaisons de Surfaces : Les humains sont moins bons pour
interpréter les surfaces que les longueurs ; préférez les barres plutôt
que les zones.
Exemples de Pièges à Éviter
Les visualisations 3D sont souvent perçues comme esthétiques
mais peu pratiques, et sont généralement déconseillées. Cependant,
les nuages de points interactifs en 3D peuvent être utiles pour
explorer des données complexes, offrant une perspective
supplémentaire pour comprendre les relations multidimensionnelles.
Comparaison des Bibliothèques de Visualisation
Avantages et Limites des Bibliothèques
▶ Matplotlib : Puissant et flexible pour des graphiques sur
mesure, mais syntaxe parfois complexe.
▶ Seaborn : Apporte une esthétique améliorée, simplifie les
visualisations statistiques.
▶ Pandas : Très pratique pour des visualisations rapides à partir
de DataFrames, mais limité pour les graphiques complexes.
▶ Altair : Idéal pour des graphiques interactifs et l’intégration
avec les notebooks Jupyter.
Choix de la Bibliothèque en Fonction du Besoin
▶ Pour des graphiques statistiques rapides : Seaborn est
recommandé.
▶ Pour des graphiques personnalisés et complexes :
Matplotlib offre plus de contrôle.
▶ Pour des graphiques interactifs : Altair ou Plotly
permettent une interactivité.
▶ Pour des visualisations simples avec DataFrames : Pandas
est pratique pour des analyses rapides.
Conclusion
▶ Python offre de nombreuses options pour la visualisation de
données, permettant d’adapter les graphiques selon les
besoins analytiques.
▶ Matplotlib, Seaborn, Pandas et Altair couvrent un large
éventail d’usages en visualisation, chacun ayant ses forces
spécifiques.
▶ Maı̂triser une ou deux de ces bibliothèques permet de tirer
pleinement parti des capacités de Python en matière de
visualisation.
Références et Ressources
▶ Matplotlib Documentation
▶ Seaborn Documentation
▶ Altair Documentation
▶ Data to Viz – Guide de Choix de Graphique
Questions ?
Des questions ?