ggplot2 courbe de distribution : Guide de d?marrage rapide - Logiciel R et visualisation de donn?es


Ce tutoriel R d?crit comment cr?er une courbe de distribution (ou densit?) avec le logiciel R et le package ggplot2.

La fonction geom_density() est utilis?e. Vous pouvez ?galement ajouter une ligne sp?cifiant la moyenne en utilisant la fonction geom_vline.

ggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?es

Pr?parer les donn?es

Les donn?es suivantes seront utilis?es dans les exemples ci-dessous:

set.seed(1234)
df <- data.frame(
  sex=factor(rep(c("F", "M"), each=200)),
  weight=round(c(rnorm(200, mean=55, sd=5),
                 rnorm(200, mean=65, sd=5)))
  )
head(df)
##   sex weight
## 1   F     49
## 2   F     56
## 3   F     60
## 4   F     43
## 5   F     57
## 6   F     58

Courbe de distribution basique

library(ggplot2)
# Graphe basique
p <- ggplot(df, aes(x=weight)) + 
  geom_density()
p
# Ajouter la ligne de la moyenne
p+ geom_vline(aes(xintercept=mean(weight)),
            color="blue", linetype="dashed", size=1)

ggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?es

Changer le type de traits et la couleur

# Changer la couleur du traits et le remplissage
ggplot(df, aes(x=weight))+
  geom_density(color="darkblue", fill="lightblue")
# Changer le type de traits
ggplot(df, aes(x=weight))+
  geom_density(linetype="dashed")

ggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?es

Lire plus sur ggplot2 et les types de traits : ggplot2 types de traits

Changer la couleur de la courbe de distribution par groupe

Calculer la moyenne de chaque groupe :

library(plyr)
mu <- ddply(df, "sex", summarise, grp.mean=mean(weight))
head(mu)
##   sex grp.mean
## 1   F    54.70
## 2   M    65.36

Changer la couleur des traits

La couleur des traits peut ?tre automatiquement contr?l?e par les niveaux de la variable sex:

# Changer la couleur des traits par groupe
ggplot(df, aes(x=weight, color=sex)) +
  geom_density()
# Ajouter les moyennes
p<-ggplot(df, aes(x=weight, color=sex)) +
  geom_density()+
  geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
             linetype="dashed")
p

ggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - 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 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?es

Lire plus sur ggplot2 et les couleurs ici: ggplot2 couleurs

Changer les couleurs de remplissage

Dans le code R ci-dessous, les couleurs de remplissage sont automatiquement contr?l?es par les niveaux de la variable sex:

# Changer la couleur de remplissage par groupe
ggplot(df, aes(x=weight, fill=sex)) +
  geom_density()
# Couleurs s?mi-transparentes
p<-ggplot(df, aes(x=weight, fill=sex)) +
  geom_density(alpha=0.4)
p
# Ajouter les moyennes
p+geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
             linetype="dashed")

ggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?es

Il est aussi possible de changer manuellement les couleurs de remplissage 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 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - 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") # Remove legend

ggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - 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

Combiner histogramme et courbe de distribution

  • L?histogramme est dessin? avec les valeurs de densit? (au lieu des valeurs de compte) sur l?axe des y.
  • Superposition avec une courbe de densit? (distribution) semi-transparente.
# Histogramme avec courbe de distribution
ggplot(df, aes(x=weight)) + 
 geom_histogram(aes(y=..density..), colour="black", fill="white")+
 geom_density(alpha=.2, fill="#FF6666") 
# Couleur par groupes
ggplot(df, aes(x=weight, color=sex, fill=sex)) + 
 geom_histogram(aes(y=..density..), alpha=0.5, 
                position="identity")+
 geom_density(alpha=.2) 

ggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?es

Utiliser les facets

Diviser le graphique en plusieurs panneaux:

p<-ggplot(df, aes(x=weight))+
  geom_density()+facet_grid(sex ~ .)
p
# Ajouter les moyennes
p+geom_vline(data=mu, aes(xintercept=grp.mean, color="red"),
             linetype="dashed")

ggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?es

Lire plus sur les facets : ggplot2 facets

Courbe de distribution personnalis?e

# Courbe de distribution basique
ggplot(df, aes(x=weight, fill=sex)) +
  geom_density(fill="gray")+
  geom_vline(aes(xintercept=mean(weight)), color="blue",
             linetype="dashed")+
  labs(title="Weight density curve",x="Weight(kg)", y = "Density")+
  theme_classic()
# Changer la couleur des traits par groupe
p<- ggplot(df, aes(x=weight, color=sex)) +
  geom_density()+
  geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
             linetype="dashed")+
  labs(title="Weight density curve",x="Weight(kg)", y = "Density")
  
p + scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))+
  theme_classic()

ggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?es

Changer la couleur des traits manuellement :

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

ggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - Logiciel R et visualisation de donn?esggplot2 courbe de distribut - Guide de d?marrage rapide - 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 7185 fois
Licence - Pas d?Utilisation Commerciale - Partage dans les M?mes Conditions
Licence Creative Commons