Visualisation des Données à l'Aide de GGPlot2

Introduction à GGPlot2

Qu’est-ce que ggplot2

GGPlot2 est un package R puissant et flexible, implémenté par Hadley Wickham, pour produire des graphiques élégants pièce par pièce (Wickham et al. 2019).

Le gg dans ggplot2 signifie Grammaire du Graphique, un concept graphique qui décrit les graphes en utilisant une “grammaire”. Selon le concept ggplot2, un graphique peut être divisé en différentes parties fondamentales : Graphique = données + Esthétique + Géométrie (ou en anglais Plot = data + Aesthetics + Geometry)

  • data : data frame
  • esthétique (ou aesthetics en anglais) : permet d’indiquer les variables x et y. Il peut également être utilisé pour contrôler la couleur, la taille et la forme des points, etc…
  • géométrie : correspond au type de graphique (histogramme, box plot, line plot, …..)

La syntaxe de ggplot2 peut sembler opaque pour les débutants, mais une fois que vous comprenez les bases, vous pouvez créer et personnaliser tous les types de graphiques que vous voulez.

Notez que, pour réduire cette opacité, nous avons récemment créé un package R, nommé ggpubr (ggplot2 Based Publication Ready Plots), pour rendre ggplot plus simple pour les étudiants et chercheurs ayant des connaissances en programmation non avancées.



Sommaire:

Livre Apparenté

GGPLOT2 - L’Essentiel pour une Visualisation Magnifique des Données dans R

Fonctions clés

Après avoir installé et chargé le package ggplot2, vous pouvez utiliser les fonctions clés suivantes:

Types de graphes Fonctions GGPlot2
Initialiser un ggplot ggplot()
Nuage de points geom_point()
Box plot geom_boxplot()
Violon plot geom_violin()
Strip chart geom_jitter()
Dot plot geom_dotplot()
Bar plot geom_bar() ou geom_col()
Line plot geom_line()
Histogramme geom_histogram()
Graphique de densité geom_density()
Barres d’erreur geom_errorbar()
QQ plot stat_qq()
ECDF plot stat_ecdf()
Titres et libellés des axes labs()

Exemple de graphiques

La fonction principale du package ggplot2 est ggplot(), qui peut être utilisée pour initialiser le système graphique avec des données et les variables x/y.

Par exemple, le code R suivant prend le jeu de données iris pour initialiser le ggplot, puis une couche (geom_point()) est ajoutée sur le ggplot pour créer un diagramme de dispersion de x = Sepal.Length en fonction de y = Sepal.Width:

library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
  geom_point()

# Modifier la taille, la couleur et la forme des points
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
  geom_point(size = 1.2, color = "steelblue", shape = 21)

Notez que, dans le code ci-dessus, la forme des points est spécifiée avec un chiffre. Les différentes formes de points disponibles dans R, sont:

Il est également possible de contrôler la forme et la couleur des points par une variable de groupement (ici, Species). Par exemple, dans le code ci-dessous, nous mappons la couleur et la forme des points à la variable de groupement Species.

Notez qu’un ggplot peut être tenu dans une variable, par exemple p, pour être afficher plus tard

# Changer la couleur des points par groupes
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
  geom_point(aes(color = Species, shape = Species))

# Modifier manuellement la couleur par défaut.
# Utiliser la fonction scale_color_manual()
p <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
  geom_point(aes(color = Species, shape = Species))+
  scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))
print(p)

Position de la légende

La position par défaut de la légende est “right”. Utilisez la fonction theme() avec l’argument legend.position pour spécifier la position de la légende.

Les valeurs autorisées pour la position de la légende incluent : “left” (à gauche), “top” (en haut), “right” (à droite), “bottom” (en bas), “none” (aucun).

Exemples:

# Changer la position de la légende vers le haut
p + theme(legend.position = "top")

Pour supprimer la légende, utilisez p + theme(legend.position = “none”).

Titres et étiquettes des axes

La fonction labs() peut être utilisée pour changer facilement le titre principal, le sous-titre, les étiquettes des axes et les légendes.

p + labs(
  title = "Edgar Anderson's Iris Data",
  subtitle = "iris is a data frame with 150 cases (rows) and 5 variables",
  x = "Sepal Length (cm)", y = "Sepal Width (cm)"
  )

Facette : Graphique à plusieurs paneaux

Vous pouvez également diviser le graphique en plusieurs panneaux en fonction d’une variable de regroupement. Fonction R: facet_wrap(). Une autre caractéristique intéressante de ggplot2, c’est la possibilité de combiner plusieurs couches sur un même graphique. Par exemple, avec le code R suivant, nous allons:

  • Ajouter des points avec geom_point(), colorés par groupes.
  • Ajoutez la ligne de régression lissée en utilisant geom_smooth(). Par défaut, la fonction geom_smooth() ajoute la ligne de régression et la zone de confiance. Vous pouvez contrôler la couleur des lignes et la couleur de remplissage de la zone de confiance par groupes.
  • Diviser le graphique en plusieurs panneaux par groupes
  • Modifier la couleur et remplir manuellement à l’aide de la fonction scale_color_manual() and scale_fill_manual()
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
  geom_point(aes(color = Species))+               
  geom_smooth(aes(color = Species, fill = Species))+
  facet_wrap(~Species, ncol = 3, nrow = 1)+
  scale_color_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))+
  scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07"))

Thème de GGPlot

Notez que le thème par défaut de ggplots est theme_gray() (ou theme_grey()), qui est un thème avec un fond gris et des lignes de grille blanches. D’autres thèmes sont disponibles pour des présentations ou des publications professionnelles. Il s’agit notamment de : theme_bw(), theme_classic()et theme_minimal().

Pour changer le thème d’un ggplot donné (p), utilisez ceci: p + theme_classic(). Pour changer le thème par défaut en theme_classic() pour tous les futurs ggplots pendant toute votre session R, tapez le code R suivant:

theme_set(
  theme_classic()
)

Maintenant vous pouvez créer des ggplots avec theme_classic() comme thème par défaut:

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width))+
  geom_point()

Autres personnalisations d’un ggplot

Vous pouvez en savoir plus dans notre fiche ggplot en ligne, [GGPlot Cheat Sheet for Great Customization] (http://www.sthda.com/english/articles/32-r-graphics-essentials/125-ggplot-cheat-sheet-for-great-customization/), qui décrit comment:

  • Ajouter un titre, un sous-titre, une légende et modifier les libellés des axes
  • Modifier l’apparence - couleur, taille et style - des titres
  • Définir les limites de l’axe
  • Définir une échelle d’axe logarithmique
  • Pivoter le texte des axes
  • Modifier le titre et la position de la légende, ainsi que la couleur et la taille
  • Modifier un thème ggplot et modifier la couleur de l’arrière-plan
  • Ajouter une image d’arrière-plan à un ggplot
  • Utilisez différentes palettes de couleurs : palettes de couleurs personnalisées, palettes adaptées aux daltoniens, palettes RColorBrewer, palettes de couleurs viridis et palettes de couleurs pour revues scientifiques.
  • Modifier les formes de points (symboles) et les types de lignes
  • Rotation d’un ggplot
  • Annoter un ggplot en ajoutant des lignes droites, des flèches, des rectangles et du texte.

Sauvegarder ggplots

Vous pouvez exporter un ggplot vers de nombreux formats de fichiers, y compris : PDF, fichiers vectoriels SVG, PNG, TIFF, JPEG, etc.

La procédure standard pour sauvegarder les graphiques de R est la suivante:

  1. Ouvrir une fenêtre graphique en utilisant l’une des fonctions suivantes:
  • pdf(“r-graphics.pdf”),
  • svg(“r-graphics.svg”),
  • png(“r-graphics.png”),
  • tiff(“r-graphics.tiff”),
  • jpeg(“r-graphics.jpg”),
  • et ainsi de suite.

Des arguments supplémentaires indiquant la largeur et la hauteur (en pouces) de la zone graphique peuvent également être spécifiés dans la fonction mentionnée.

  1. Créer et afficher un graphique
  2. Fermer la fenêtre graphique à l’aide de la fonction dev.off()

Par exemple, pour exporter des graphiques ggplot2 vers un fichier pdf, le code R ressemble à ceci:

# Créer des graphiques
library(ggplot2)
myplot1 <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) + 
  geom_point()
myplot2 <- ggplot(iris, aes(Species, Sepal.Length)) + 
  geom_boxplot()

# Enregistrer les graphiques dans un fichier pdf
pdf("ggplot.pdf")
print(myplot1)     # Graphique 1 --> dans la première page du PDF
print(myplot2)     # Graphique 2 ---> dans la deuxième page du PDF
dev.off() 

Pour enregistrer dans un fichier png, utilisez:

png("myplot.png")
print(myplot)
dev.off()

Il est également possible de faire un ggplot et de l’enregistrer à l’écran en utilisant la fonction ggsave():

# 1. Créer un graphique : affiché à l'écran (par défaut)
ggplot(mtcars, aes(wt, mpg)) + geom_point()
# 2.1. Sauvegarder le graphique au format pdf
ggsave("myplot.pdf")
# 2.2 OU l'enregistrer dans un fichier png
ggsave("myplot.png")

Conclusion

Cet article explique les bases de ggplot2 et montre comment exporter un ggplot vers un fichier PDF ou PNG.

References

Wickham, Hadley, Winston Chang, Lionel Henry, Thomas Lin Pedersen, Kohske Takahashi, Claus Wilke, Kara Woo, and Hiroaki Yutani. 2019. Ggplot2: Create Elegant Data Visualisations Using the Grammar of Graphics. https://CRAN.R-project.org/package=ggplot2.



Version: English

(Next Lesson) GGPLOT Nuage de Points
Back to Visualisation des Données à l’Aide de GGPlot2

No Comments

Give a comment

Want to post an issue with R? If yes, please make sure you have read this: How to Include Reproducible R Script Examples in Datanovia Comments

Teacher
Alboukadel Kassambara
Role : Fondateur de Datanovia
Read More