ggplot2 histogramme : Guide de démarrage rapide - Logiciel R et visualisation de données


Ce tutoriel R décrit comment créer un histogramme de distribution avec le logiciel R et le package ggplot2.

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

ggplot2 histogramme - 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

Histogramme basique

library(ggplot2)
# Histogramme basique
ggplot(df, aes(x=weight)) + geom_histogram()
# Changer la largeur des barres
ggplot(df, aes(x=weight)) + 
  geom_histogram(binwidth=1)
# Changer la couleur
p<-ggplot(df, aes(x=weight)) + 
  geom_histogram(color="black", fill="white")
p

ggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de données

Ajouter la moyenne et la courbe de distribution sur l’histogramme

  • L’histogramme est dessiné avec les valeurs de densité (au lieu des valeurs de comptage) sur l’axe des y.
  • Superposition avec une courbe de densité (distribution) semi-transparente. L’argument alpha est utilisé pour contrôler la transparence des couleurs
# Ajouter le trait de la moyenne
p+ geom_vline(aes(xintercept=mean(weight)),
            color="blue", linetype="dashed", size=1)
# Histogramme avec la courbe de distribution
ggplot(df, aes(x=weight)) + 
 geom_histogram(aes(y=..density..), colour="black", fill="white")+
 geom_density(alpha=.2, fill="#FF6666") 

ggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de données

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

Changer le type et la couleur des traits de l’histogramme

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

ggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de données

Changer la couleur des histogrammes par groupes

Calculer la moyenne de chaque groupe

Le package plyr est utilisé:

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.

Notez que l’argument position peut être utilisé pour ajuster la position des histogrammes des différents groupes. Les valeurs possibles pour l’argument position sont: “identity”, “stack”, “dodge”. La valeur par défaut est : “stack”.

# Changer la couleur des histogrammes par groupes
ggplot(df, aes(x=weight, color=sex)) +
  geom_histogram(fill="white")
# Histogrammes chévauchants
ggplot(df, aes(x=weight, color=sex)) +
  geom_histogram(fill="white", alpha=0.5, position="identity")

ggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de données

# Histogrammes séparés
ggplot(df, aes(x=weight, color=sex)) +
  geom_histogram(fill="white", position="dodge")+
  theme(legend.position="top")
# Ajouter le trait de la moyenne
p<-ggplot(df, aes(x=weight, color=sex)) +
  geom_histogram(fill="white", position="dodge")+
  geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
             linetype="dashed")+
  theme(legend.position="top")
p

ggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de données

Il est aussi possible de changer manuellement la couleur des traits de l’histogramme 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() +
  theme(legend.position="top")

ggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - 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, color=sex)) +
  geom_histogram(position="identity")
# Couleurs sémi-transparentes
p<-ggplot(df, aes(x=weight, fill=sex, color=sex)) +
  geom_histogram(position="identity", alpha=0.5)
p
# Ajouter les moyennes
p+geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
             linetype="dashed")

ggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - 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_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))+
  scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))
# Utiliser les palettes RColorBrewer
p+scale_color_brewer(palette="Dark2")+
  scale_fill_brewer(palette="Dark2")
# Utiliser la palette de couleurs grises
p + scale_color_grey()+scale_fill_grey() +
  theme_classic()

ggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - 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")
# Supprimer la légende
p + theme(legend.position="none")

ggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - 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

Utiliser les facets

Diviser le graphique en plusieurs panneaux:

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

ggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de données

Lire plus sur les facets : ggplot2 facets

Histogrammes personnalisés

# Histogramme basique
ggplot(df, aes(x=weight, fill=sex)) +
  geom_histogram(fill="white", color="black")+
  geom_vline(aes(xintercept=mean(weight)), color="blue",
             linetype="dashed")+
  labs(title="Weight histogram plot",x="Weight(kg)", y = "Count")+
  theme_classic()
# Changer la couleur des traits par groupes
ggplot(df, aes(x=weight, color=sex, fill=sex)) +
  geom_histogram(position="identity", alpha=0.5)+
  geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
             linetype="dashed")+
  scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))+
  scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))+
  labs(title="Weight histogram plot",x="Weight(kg)", y = "Count")+
  theme_classic()

ggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de données

Combiner histogrammes et courbe de densité:

# Changer la couleur des traits par groupe
ggplot(df, aes(x=weight, color=sex, fill=sex)) +
geom_histogram(aes(y=..density..), position="identity", alpha=0.5)+
geom_density(alpha=0.6)+
geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
           linetype="dashed")+
scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))+
scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))+
labs(title="Weight histogram plot",x="Weight(kg)", y = "Density")+
theme_classic()

ggplot2 histogramme - Logiciel R et visualisation de données

Changer la couleur des traits manuellement:

p<-ggplot(df, aes(x=weight, color=sex)) +
  geom_histogram(fill="white", position="dodge")+
  geom_vline(data=mu, aes(xintercept=grp.mean, color=sex),
             linetype="dashed")
# Couleurs continues
p + scale_color_brewer(palette="Paired") + 
  theme_classic()+theme(legend.position="top")
# Couleurs discretes
p + scale_color_brewer(palette="Dark2") +
  theme_minimal()+theme_classic()+theme(legend.position="top")
# Gradient de couleurs
p + scale_color_brewer(palette="Accent") + 
  theme_minimal()+theme(legend.position="top")

ggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - Logiciel R et visualisation de donnéesggplot2 histogramme - 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)







Want to Learn More on R Programming and Data Science?

==> Subscribe to our Mailing List <==

* indicates required


 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.


Suggestions


ggplot2 couleurs : Changer les couleurs automatiquement et manuellement - Logiciel R et visualisation de données
ggplot2 graduation des axes : Guide pour personnaliser les étiquettes des graduations - Logiciel R et visualisation de données
ggplot2 légende : Modifier facilement la légende d'un graphique - Logiciel R et visualisation de données
ggplot2 barplots : Guide de démarrage rapide - Logiciel R et visualisation de données
ggplot2 - Combiner plusieurs graphiques sur la même page - Logiciel R et visualisation de données
ggplot2 échelle et transformation des axes - Logiciel R et visualisation de données
ggplot2 titres : Titre principal, titre des axes et légendes - Logiciel R et visualisation de données
ggplot2 box plot : Guide de démarrage rapide - Logiciel R et visualisation de données
ggplot2 nuage de points: Guide de démarrage rapide - Logiciel R et visualisation de données
ggplot2 textes : Ajouter du texte à un graphique - Logiciel R et visualisation de données
ggplot2 thèmes et couleurs de fond : les 3 éléments - Logiciel R et visualisation de données
ggplot2 barres d'erreur : Guide de démarrage rapide - Logiciel R et visualisation de données
ggplot2 graphique en camembert: Guide de démarrage rapide - Logiciel R et visualisation de données
ggplot2 types de points - Logiciel R et visualisation de données
ggplot2 - ajouter une ligne droite à un graphe : Ligne horizontale, verticale et droite de régression
ggplot2
ggplot2 graphique linéaire : Guide de démarrage rapide - Logiciel R et visualisation de données
ggplot2 dot plot : Guide de démarrage rapide - Logiciel R et visualisation de données
ggplot2 : heatmap d'une matrice de corrélation - Logiciel R et visualisation de données
ggplot2 type de traits : Comment changer le type de trait d'un graphique avec le logiciel R?
ggplot2 facet : diviser un graphique en plusieurs panneaux - Logiciel R et visualisation de données
ggplot2 ECDF graphique: Guide de démarrage rapide pour la fonction de répartition empirique - Logiciel R et visualisation de données
ggplot2 courbe de distribution : Guide de démarrage rapide - Logiciel R et visualisation de données
ggplot2 violin plot : Guide de démarrage rapide - Logiciel R et visualisation de données
ggplot2 stripchart (jitter): Guide de démarrage rapide - Logiciel R et visualisation de données
ggplot2 pivoter un graphique : Inverser et retourner le graphique - Logiciel R et visualisation de données
ggplot2 qq plot (quantile - quantile plot) : Guide de démarrage rapide - Logiciel R et visualisation de données

Cette page a été vue 8475 fois
Licence - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions
Licence Creative Commons