Dans cet article, nous allons explorer les concepts de base de ggplot, et découvrir comment construire un graphique avec cette bibliothèque pour présenter efficacement vos données.
Qu'est-ce que ggplot ?
ggplot est une bibliothèque de visualisation de données en R, développée par Hadley Wickham en 2005. Cette bibliothèque est basée sur la grammaire des graphiques, qui permet de décrire des graphiques en termes de composants de base tels que des axes, des légendes ou encore des étiquettes.
Ainsi, avec ggplot on peut voir un graphique comme une série de couches qui se superposent pour produire le graphique final. Chaque couche de graphique peut être ajoutée à l’aide de la fonction + et peut inclure des éléments tels que des points, des lignes, des barres, des nuages de points, des histogrammes, des boîtes à moustaches, des textes et bien plus encore.
Pour créer un graphique à l’aide du système de couches sur ggplot, commencez par spécifier les données et les variables à utiliser pour les axes x et y, puis ajoutez progressivement des couches de graphiques supplémentaires.
L’une des couches de graphique les plus utilisées est celle de fonctions géométriques à l’aide des fonctions geom_ appropriées.
Voici quelques exemples de couches de graphiques de fonctions géométriques :
- geom_point() : ajoute des points au graphique
- geom_line() : ajoute une ligne au graphique
- geom_bar() : ajoute un graphique en barres au graphique
- geom_histogram() : ajoute un histogramme au graphique
- geom_boxplot() : ajoute une boîte à moustaches au graphique
- geom_text() : ajoute du texte au graphique
À noter que chaque couche de graphique peut être personnalisée à l’aide d’options spécifiques à chaque fonction.
Pour comprendre ce principe, voyons comment créer étape par étape le graphique suivant avec le jeu de données Iris.
Voici un aperçu de nos données :
1ère étape : Charger la librairie ggplot et lire le fichier csv
library(ggplot2)
iris <- read.csv("species.csv")
2ème étape : Créer l’objet ggplot
p = ggplot(iris, aes(x=Sepal.Length + Petal.Length, y = Sepal.Width + Petal.Width))
Cette ligne crée un objet de graphique ggplot nommé p et qui représente le jeu de données iris avec les variables Sepal.Length, Petal.Length, Sepal.Width et Petal.Width. Les valeurs de Sepal.Length et Petal.Length sont ajoutées pour créer l’axe x, tandis que les valeurs de Sepal.Width et Petal.Width sont ajoutées pour créer l’axe y.
3ème étape : Création d’un nuage de points
p = ggplot(iris, aes(x=Sepal.Length + Petal.Length, y = Sepal.Width + Petal.Width))
+ geom_jitter(aes(color = Species), alpha =0.6, width = 1)
Cette ligne ajoute un nuage de points (geom_jitter) au graphique. Les points sont colorés en fonction de la variable Species et ont une transparence de 0,6 et une largeur de 1.
4ème étape : Création d’une régression linéaire
p = ggplot(iris, aes(x=Sepal.Length + Petal.Length, y = Sepal.Width + Petal.Width))
+ geom_jitter(aes(color = Species), alpha =0.6, width = 1)
+ geom_smooth(method='lm', se = FALSE)
Cette ligne ajoute une couche de droite de régression (geom_smooth) au graphique. La méthode de modélisation utilisée est la régression linéaire (method=’lm’). L’option se = FALSE est utilisée pour ne pas afficher les intervalles de confiance.
5ème étape : Séparation du graphique en sous parties
p = ggplot(iris, aes(x=Sepal.Length + Petal.Length, y = Sepal.Width + Petal.Width))
+ geom_jitter(aes(color = Species), alpha =0.6, width = 1)
+ geom_smooth(method='lm', se = FALSE)
+ facet_wrap(~Species)
Cette ligne divise le graphique en panneaux (facet_wrap) en fonction de la variable Species. Cela permet de voir la relation entre les variables pour chaque espèce séparément.
6ème étape : Ajout des étiquettes
p = ggplot(iris, aes(x=Sepal.Length + Petal.Length, y = Sepal.Width + Petal.Width)) + geom_jitter(aes(color = Species), alpha =0.6, width = 1)
+ geom_smooth(method='lm', se = FALSE)
+ facet_wrap(~Species)
+ labs(title = "Relation Length/Width", x= "Length", y= "Width")
Cette ligne ajoute des étiquettes de titre et d’axe au graphique. Le titre est « Relation Length/Width », l’axe x est étiqueté « Length » et l’axe y est étiqueté « Width ».
7ème étape : Ajout du thème
p = ggplot(iris, aes(x=Sepal.Length + Petal.Length, y = Sepal.Width + Petal.Width))
+ geom_jitter(aes(color = Species), alpha =0.6, width = 1)
+ geom_smooth(method='lm', se = FALSE)
+ facet_wrap(~Species)
+ labs(title = "Relation Length/Width", x= "Length", y= "Width")
+ theme(plot.background = element_rect(fill = '#E8EAF6', color = "#08104E", size = 3))
Cette ligne définit un thème personnalisé pour le graphique à l’aide de la fonction theme(). L’argument plot.background est utilisé pour définir l’arrière-plan du graphique. La fonction element_rect() est utilisée pour créer un rectangle avec une couleur de remplissage de ‘#E8EAF6’, une bordure de couleur « #08104E » et d’une épaisseur de 3 pixels.
Ce code crée un graphique ggplot en 7étapes qui montre la relation entre la longueur et la largeur des sépales et des pétales pour les différentes espèces de fleurs iris. Les points sont colorés en fonction de l’espèce et une régression linéaire est ajustée pour chaque espèce.
Qu'est ce qu'il faut retenir de ggplot ?
ggplot est une bibliothèque pour la visualisation de données en R. Grâce à son système de couches qui offre une grande flexibilité, nous pouvons créer des graphiques personnalisés et complexes en ajoutant progressivement des composants graphiques supplémentaires.
Si vous êtes intéressé par la datavisualisation, n’hésitez pas à rejoindre notre formation Data Analyst !