Construire des graphiques efficaces avec R
Objectifs pédagogiques
- Restituer l’information contenue dans les données ou les résultats des analyses effectuées de façon claire et didactique.
- Naviguer dans les données afin de trouver des pistes d’analyses.
Programme détaillé
Une donnée mal mise en forme est une donnée mal exploitée. Dans un contexte de multiplication des sources et d’augmentation incessante de la volumétrie, la visualisation des données prend de plus en plus d’importance pour assurer la pertinence de l’information transmise.
Rappels historiques 30 min
Bonnes pratiques et erreurs classiques 30 min
Sémiologies graphiques 1h
Utilisation de ggplot2 pour représenter des données avec R 2h
Présentation des outils spécialisés (plotly, dygraph…) 2h
Public visé
Data analysts
Prérequis
- Connaissances de base en statistiques descriptives (formation Statistiques descriptives avec R).
- Connaissances intermédiaires du logiciel R (formation R intermédiaire).
Approche pédagogique
ggplot2 et la grammaire des graphiques, de Wilkinson à Wickham
Dans les graphiques de base de R, chaque type de graphique est une fonction : barplot(), hist(), boxplot(). ggplot2 part d’une autre idée : un graphique se décrit comme une phrase, construite à partir d’une grammaire. Cette idée a une histoire.
Une grammaire des graphiques (Wilkinson, 1999)
En 1999, le statisticien Leland Wilkinson, créateur du logiciel SYSTAT, publie The Grammar of Graphics. Il y décompose tout graphique statistique en composants indépendants : les données, leurs transformations statistiques, les échelles, le système de coordonnées, les éléments géométriques qui les représentent. Avec cette grammaire, des graphiques que l’on croyait différents deviennent des variantes l’un de l’autre : un camembert n’est qu’une barre empilée tracée en coordonnées polaires.
ggplot2 (2007) et la grammaire en couches (2010)
Hadley Wickham, alors doctorant à l’université d’État de l’Iowa, publie la première version de ggplot2 sur le CRAN le 1er juin 2007. En 2010, dans « A Layered Grammar of Graphics » (Journal of Computational and Graphical Statistics), il formalise la variante en couches qu’il a implémentée : un graphique est une superposition de couches, chacune associant des données, une correspondance entre variables et propriétés visuelles (aes()), une géométrie (geom_*) et une transformation statistique, le tout complété par des échelles, un système de coordonnées et d’éventuelles facettes. L’exemple du camembert s’écrit littéralement :
library(ggplot2)
barre <- ggplot(ventes, aes(x = "", y = part, fill = region)) +
geom_col() # une barre empilée
barre + coord_polar(theta = "y") # la même barre, en coordonnées polaires : un camembert
Seul le système de coordonnées change. La grammaire rend aussi visible ce qui est discutable : le camembert oblige à comparer des angles, que l’œil lit moins précisément que des longueurs. ggplot2 4.0, en septembre 2025, a réécrit l’architecture interne du package sans changer cette syntaxe.
Du graphique statique à l’interactif
Les outils spécialisés vont plus loin que l’image fixe. ggplotly(), du package plotly, convertit un graphique ggplot2 en graphique interactif, avec zoom et infobulles au survol. dygraphs, dédié aux séries temporelles, permet de sélectionner une période à la souris et de faire défiler la série.
La sémiologie graphique de Jacques Bertin et les expériences de perception de Cleveland et McGill, qui fondent ces règles de lecture, sont présentées dans le bloc de la formation Construire des graphes efficaces avec Python.