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)









Want to Learn More on R Programming and Data Science?

Follow us by Email

by FeedBurner

On Social Networks:


 Get involved :
  Click to follow us on and Google+ :   
  Comment this article by clicking on "Discussion" button (top-right position of this page)
  Sign up as a member and post news and articles on STHDA web site.
Cette page a été vue 7178 fois