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.
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)
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)
Choisir les groupes ? afficher :
p + scale_x_discrete(limits=c("0.5", "2"))
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))
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
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()
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
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()
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
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"))
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
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"))
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()
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()
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)
Show me some love with the like buttons below... Thank you and please don't forget to share and comment below!!
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!
Recommended for You!
Click to follow us on Facebook:
Comment this article by clicking on "Discussion" button (top-right position of this page)