Comment ajouter des tables aux tracés dans ggplot2 (2 exemples)
Souvent, vous souhaiterez peut-être ajouter des tableaux aux tracés créés dans ggplot2 dans R afin que les lecteurs puissent visualiser les données brutes avec le tracé.
Heureusement, il est facile d’ajouter des tables aux tracés à l’aide du package ggpmisc :
install.packages('ggpmisc')
library(ggpmisc)
Les exemples suivants montrent comment utiliser ce package pour ajouter une table à un barplot et à un nuage de points à l’aide du bloc de données suivant :
#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
points=c(13, 23, 24, 20, 19, 14, 29, 31))
#view data frame
df
team position points
1 A G 13
2 A G 23
3 A F 24
4 A F 20
5 B G 19
6 B G 14
7 B F 29
8 B F 31
Exemple 1 : ajouter une table à Barplot dans ggplot2
Nous pouvons utiliser le code suivant pour créer un barplot groupé dans ggplot2 et ajouter un tableau dans le coin inférieur droit du tracé pour afficher les valeurs réelles du bloc de données :
library(ggplo2) library(ggpmisc) #create barplot with table ggplot(df, aes(x=team, y=points, fill=position)) + geom_bar(position='dodge', stat='identity') + annotate(geom = 'table', x=4, y=0, label=list(df))
Si vous travaillez avec un grand ensemble de données et que vous ne souhaitez pas afficher chaque ligne individuelle, vous pouvez utiliser la fonction table() pour résumer les données avant de créer la table dans ggplot2 :
library(ggplot2) library(ggpmisc) #summarize frequencies of team and points in table my_table <- as.data.frame(table(df[ , c(1, 3)])) #create barplot with table ggplot(df, aes(x=team, y=points, fill=position)) + geom_bar(position='dodge', stat='identity') + annotate(geom = 'table', x=4, y=0, label=list(my_table))
Exemple 2 : Ajouter un tableau au nuage de points dans ggplot2
Nous pouvons utiliser le code suivant pour créer un nuage de points dans ggplot2 et ajouter un tableau dans le coin inférieur droit du tracé pour afficher les valeurs réelles du bloc de données :
library(ggplo2) library(ggpmisc) #create scatterplot with table ggplot(df, aes(x=team, y=points)) + geom_point(aes(color=position)) + annotate(geom='table', x=4, y=0, label=list(df))
Remarque : N’hésitez pas à jouer avec les valeurs x et y dans la fonction annotate() pour placer le tableau à l’emplacement exact que vous souhaitez.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans ggplot2 :
Comment ajouter du texte aux tracés ggplot2
Comment changer la position du titre dans ggplot2
Comment modifier l’ordre des éléments dans la légende ggplot2