ggplot2 stripchart (jitter): Guide de d?marrage rapide - Logiciel R et visualisation de donn?es


Ce tutoriel R d?crit comment cr?er un stripchart avec le logiciel R et le package ggplot2. Le stripchart correspond ? un nuage de points sur une dimension. Ce type de graphique est beaucoup plus adapt? qu?un box plot lorsque la taille des ?chantillons est petite.

La fonction geom_jitter() est utilis?e.

ggplot2 stripchart - 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.

Stripcharts basiques

library(ggplot2)
# Stripcharts basiques
ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_jitter()
# Changer l'argument position
# 0.2 : d?gr? de dispersion sur l'axe des x
p<-ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_jitter(position=position_jitter(0.2))
p
# Tourner le stripchart
p + coord_flip()

ggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?es

Choisir les groupes ? afficher:

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

ggplot2 stripchart - Logiciel R et visualisation de donn?es

Changer le type et la taille des points :

# Changer la taille des points
ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_jitter(position=position_jitter(0.2), cex=1.2)
# Changer le type de point (shape)
ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_jitter(position=position_jitter(0.2), shape=17)

ggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?es

Lire plus sur les types de points : ggplot2 types de points

Ajouter des statistiques descriptives sur un stripchart

La fonction stat_summary() peut ?tre utilis?e pour ajouter la moyenne/m?diane et plus sur un dot plot.

Ajouter le point de la moyenne et de la m?diane

# stripchart avec le point de la moyenne
p + stat_summary(fun.y=mean, geom="point", shape=18,
                 size=3, color="red")
# stripchart avec le point de la m?diane
p + stat_summary(fun.y=median, geom="point", shape=18,
                 size=3, color="red")

ggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?es

Stripchart avec un box plot et un violin plot

# Ajouter un box plot basique
ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_boxplot()+
  geom_jitter(position=position_jitter(0.2))
# Ajouter un box plot de type notch
ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_boxplot(notch = TRUE)+
  geom_jitter(position=position_jitter(0.2))
# Ajouter un violin plot
ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_violin(trim = FALSE)+
  geom_jitter(position=position_jitter(0.2))

ggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?es

Lire plus sur le box plot : ggplot2 box plot

Lire plus sur le violin plot : ggplot2 violin plot

Ajouter la moyenne et l??cart type

La fonction mean_sdl est utilis?e. mean_sdl calcule la moyenne plus ou moins une constante fois l??cart type.

Dans le code R ci-dessous, la constante est sp?cifi?e en utilisant l?argument mult (mult = 1). Par d?faut mult = 2.

La moyenne +/- SD peut ?tre ajout?e comme un crossbar ou un pointrange :

p <- ggplot(ToothGrowth, aes(x=dose, y=len)) + 
    geom_jitter(position=position_jitter(0.2))
p + stat_summary(fun.data="mean_sdl", mult=1, 
                 geom="crossbar", width=0.5)
p + stat_summary(fun.data=mean_sdl, mult=1, 
                 geom="pointrange", color="red")

ggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?es

Notez que, vous pouvez aussi d?finir une fonction personnalis?e pour calculer les statistiques descriptives comme suit.

# Fonction pour produire les 
# statistiques descriptives (moyenne et +/- sd)
data_summary <- function(x) {
   m <- mean(x)
   ymin <- m-sd(x)
   ymax <- m+sd(x)
   return(c(y=m,ymin=ymin,ymax=ymax))
}

Utiliser une fonction personnalis?e:

p + stat_summary(fun.data=data_summary, color="blue")

ggplot2 stripchart - Logiciel R et visualisation de donn?es

Changer les types de points par groupes

Dans le code R ci-dessous, la forme des points du stripchart est automatiquement contr?l?e par les niveaux de la variable dose.

Il est aussi possible de changer manuellement le type de points en utilisant la fonction scale_shape_manual().

# Changer le type de points par groupes
p<-ggplot(ToothGrowth, aes(x=dose, y=len, shape=dose)) + 
    geom_jitter(position=position_jitter(0.2))
p
# Changer le type de points manuellement
p + scale_shape_manual(values=c(1,17,19))

ggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?es

Lire plus sur les types de points : ggplot2 types de points

Changer la couleur par groupes

Dans le code R ci-dessous, la couleur des points est automatiquement contr?l?e par les niveaux de la variable dose:

# Utiliser une couleur unique
ggplot(ToothGrowth, aes(x=dose, y=len)) + 
    geom_jitter(position=position_jitter(0.2), color="red")
# Changer la couleur par groupe
p<-ggplot(ToothGrowth, aes(x=dose, y=len, color=dose)) +
  geom_jitter(position=position_jitter(0.2))
p

ggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?es

Il est aussi possible de changer manuellement les couleurs 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 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - 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 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - 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 stripchart - Logiciel R et visualisation de donn?es

Stripchart avec plusieurs groupes

# Changer la couleur des stripcharts par groupe
ggplot(ToothGrowth, aes(x=dose, y=len, color=supp)) +
  geom_jitter(position=position_jitter(0.2))
# Changer la position : intervalle entre les groupes
p<-ggplot(ToothGrowth, aes(x=dose, y=len, color=supp, shape=supp)) +
  geom_jitter(position=position_dodge(0.8))
p

ggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?es

Change les couleurs du stripchart et ajouter des box plots :

# Changer les couleurs
p+scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))
# Ajouter des box plots
ggplot(ToothGrowth, aes(x=dose, y=len, color=supp)) +
  geom_boxplot(color="black")+
  geom_jitter(position=position_jitter(0.2))
# Changer la position
ggplot(ToothGrowth, aes(x=dose, y=len, color=supp)) +
  geom_boxplot(position=position_dodge(0.8))+
  geom_jitter(position=position_dodge(0.8))

ggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?es

Stripcharts personnalis?s

# Stripchart basique
ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_boxplot()+
  geom_jitter(position=position_jitter(0.2))+
  labs(title="Plot of length  by dose",x="Dose (mg)", y = "Length")+
  theme_classic()
# Changer la couleur et le type de points par groupes
p <- ggplot(ToothGrowth, aes(x=dose, y=len, color=dose, shape=dose)) + 
  geom_jitter(position=position_jitter(0.2))+
  labs(title="Plot of length  by dose",x="Dose (mg)", y = "Length")
p + theme_classic()

ggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?es

Changer les couleurs manuellement:

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

ggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?esggplot2 stripchart - Logiciel R et visualisation de donn?es

Lire plus sur ggplot2 et les couleurs ici: ggplot2 couleurs

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 6293 fois
Licence - Pas d?Utilisation Commerciale - Partage dans les M?mes Conditions
Licence Creative Commons