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)


Enjoyed this article? I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Twitter, Facebook or Linked In.

Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
Avez vous aimé cet article? Je vous serais très reconnaissant si vous aidiez à sa diffusion en l'envoyant par courriel à un ami ou en le partageant sur Twitter, Facebook ou Linked In.

Montrez-moi un peu d'amour avec les like ci-dessous ... Merci et n'oubliez pas, s'il vous plaît, de partager et de commenter ci-dessous!





Cette page a été vue 23281 fois
Licence - Pas d?Utilisation Commerciale - Partage dans les M?mes Conditions
Licence Creative Commons