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 8040 fois