ggplot2 box plot : Guide de démarrage rapide - Logiciel R et visualisation de données


Ce tutoriel R décrit comment créer un box plot avec le logiciel R et le package ggplot2.

La fonction geom_boxplot() est utilisée. Un format simplifié est :

geom_boxplot(outlier.colour="black", outlier.shape=16,
             outlier.size=2, notch=FALSE)
  • outlier.colour, outlier.shape, outlier.size : La couleur, le type et la taille des points atypiques
  • notch : valeur logique. si TRUE, un box plot de type notch est réalisé. Le “notch” affiche une intervalle de confiance autour de la médiane qui est normalement basée sur la médiane +/- 1.58*IQR/sqrt(n). Les “notch” sont utilisés pour comparer des groupes; Si les “notch” de deux box plots ne se chevauchent pas, c’est une forte évidence que les médianes diffèrent.

ggplot2 box plot - Logiciel R et visualisation de données

Préparer les données

Le jeu de données ToothGrowth est utilisé dans les exemples suivants :

# Convertir la colonne dose en facteur
ToothGrowth$dose <- as.factor(ToothGrowth$dose)
head(ToothGrowth)
##    len supp dose
## 1  4.2   VC  0.5
## 2 11.5   VC  0.5
## 3  7.3   VC  0.5
## 4  5.8   VC  0.5
## 5  6.4   VC  0.5
## 6 10.0   VC  0.5

Assurez-vous que la variable dose soit convertie en facteur en utilisant le script de R ci-dessus.

Box plots basiques

library(ggplot2)
#Box plots basiques
p <- ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_boxplot()
p
# Tourner le box plot
p + coord_flip()
# Box plot de type notch
ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_boxplot(notch=TRUE)
# Changer la couleur, la forme et la taille des 
# valeurs atypiques (outliers)
ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_boxplot(outlier.colour="red", outlier.shape=8,
                outlier.size=4)

ggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de données

La fonction stat_summary() peut être utilisée pour ajouter un point, représentant la moyenne, sur le box plot:

# Box plot avec la moyenne affichée
p + stat_summary(fun.y=mean, geom="point", shape=23, size=4)

ggplot2 box plot - Logiciel R et visualisation de données

Choisir les groupes à afficher :

p + scale_x_discrete(limits=c("0.5", "2"))

ggplot2 box plot - Logiciel R et visualisation de données

Box plot avec des points

Des points peuvent être ajoutés à un box plot en utilisant la fonction geom_dotplot() ou geom_jitter() :

# Box plot avec un dot plot
p + geom_dotplot(binaxis='y', stackdir='center', dotsize=1)
# Box plot avec des points dispersés (jitter)
# 0.2 : dégré de dispersion sur l'axe des x
p + geom_jitter(shape=16, position=position_jitter(0.2))

ggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de données

Changer la couleur des box plots par groupes

Changer la couleur des traits des box plots

La couleur des traits du box plot peut être automatiquement contrôlée par les niveaux de la variable dose:

# Changer la couleur des traits du box plot par groupes
p<-ggplot(ToothGrowth, aes(x=dose, y=len, color=dose)) +
  geom_boxplot()
p

ggplot2 box plot - Logiciel R et visualisation de données

Il est aussi possible de changer manuellement la couleur des traits du box plot en utilisant les fonctions:

  • scale_color_manual() : pour utiliser des couleurs personnalisées
  • scale_color_brewer() : pour utiliser les palettes de couleurs du package RColorBrewer
  • scale_color_grey() : pour utiliser la palette de couleurs grises
# Utiliser des couleurs personnalisées
p+scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))
# Utiliser les palettes RColorBrewer
p+scale_color_brewer(palette="Dark2")
# Utiliser la palette de couleurs grises
p + scale_color_grey() + theme_classic()

ggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de données

Lire plus sur ggplot2 et les couleurs ici: ggplot2 couleurs

Changer les couleurs de remplissage du box plot

Dans le code R ci-dessous, les couleurs de remplissage du box plot sont automatiquement contrôlées par les niveaux de la variable dose:

# Utiliser une couleur unique
ggplot(ToothGrowth, aes(x=dose, y=len)) +
  geom_boxplot(fill='#A4A4A4', color="black")+
  theme_classic()
# Changer la couleur par groupes
p<-ggplot(ToothGrowth, aes(x=dose, y=len, fill=dose)) +
  geom_boxplot()
p

ggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de données

Il est aussi possible de changer manuellement les couleurs de remplissage du box plot en utilisant les fonctions:

  • scale_fill_manual() : pour utiliser des couleurs personnalisées
  • scale_fill_brewer() : pour utiliser les palettes de couleurs du package RColorBrewer
  • scale_fill_grey() : pour utiliser la palette de couleurs grises
# Utiliser des couleurs personnalisées
p+scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))
# Utiliser les palettes RColorBrewer
p+scale_fill_brewer(palette="Dark2")
# Utiliser la palette de couleurs grises
p + scale_fill_grey() + theme_classic()

ggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de données

Lire plus sur ggplot2 et les couleurs ici: ggplot2 couleurs

Changer la position de la légende

p + theme(legend.position="top")
p + theme(legend.position="bottom")
p + theme(legend.position="none") # supprimer la légende

ggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de données

Les valeurs possibles pour l’argument legend.position sont : “left”,“top”, “right”, “bottom”.

Lire plus sur ggplot2 et légende: ggplot2 légende

Changer l’ordre des éléments dans la légende

La fonction scale_x_discrete peut être utilisée pour changer l’ordre des éléments en “2”, “0.5”, “1” :

p + scale_x_discrete(limits=c("2", "0.5", "1"))

ggplot2 box plot - Logiciel R et visualisation de données

Box plot avec plusieurs groupes

# Changer la couleur des box plots par groupe
ggplot(ToothGrowth, aes(x=dose, y=len, fill=supp)) +
  geom_boxplot()
# Changer la position
p<-ggplot(ToothGrowth, aes(x=dose, y=len, fill=supp)) +
  geom_boxplot(position=position_dodge(1))
p

ggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de données

Changer la couleur des box plots et ajouter des points :

# Ajouter des points
p + geom_dotplot(binaxis='y', stackdir='center',
                 position=position_dodge(1))
# Changer les couleurs
p+scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))

ggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de données

Box plots personnalisés

# Box plot basique
ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_boxplot(fill="gray")+
  labs(title="Plot of length per dose",x="Dose (mg)", y = "Length")+
  theme_classic()
# Changer autumatiquement la couleur par groupes
bp <- ggplot(ToothGrowth, aes(x=dose, y=len, fill=dose)) + 
  geom_boxplot()+
  labs(title="Plot of length  per dose",x="Dose (mg)", y = "Length")
bp + theme_classic()

ggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de données

Changer les couleurs de remplissage manuellement :

# Couleurs continues
bp + scale_fill_brewer(palette="Blues") + theme_classic()
# Couleurs discretes
bp + scale_fill_brewer(palette="Dark2") + theme_minimal()
# Gradient de couleurs
bp + scale_fill_brewer(palette="RdBu") + theme_minimal()

ggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de donnéesggplot2 box plot - Logiciel R et visualisation de données

Lire plus sur ggplot2 et légende: ggplot2 légende

Infos

Cette analyse a été faite en utilisant le logiciel R (ver. 3.1.2) et le package ggplot2 (ver. 1.0.0)









Want to Learn More on R Programming and Data Science?

Follow us by Email

by FeedBurner

On Social Networks:


 Get involved :
  Click to follow us on and Google+ :   
  Comment this article by clicking on "Discussion" button (top-right position of this page)
  Sign up as a member and post news and articles on STHDA web site.
Cette page a été vue 19674 fois