Data visualisation sous R : l'histogramme
L'histogramme sous R avec la librairie GGPlot2
Aujourd'hui, une nouvelle série avec une revue des principaux graphiques statistiques sous R.
Comme chacun sait, le package R commander est amplement suffisant pour produire des graphiques simples
et efficaces. Néanmoins des lors que l'on désire s'aventurer dans des configurations plus complexes ou
des représentations au formatage personnalisé, il convient de coder soi-même.
Pour cela, la librairie la plus utilisée sous R est ggplot2.
L'objectif n'est pas de passer en revue l'ensemble des options possibles mais simplement de vous donner un code simple qui fonctionne, que vous pourrez adapter à votre convenance.
Le chargement des données
Nous allons travailler sur les adhérents d'une salle de sport. Notre fichier comporte deux variables : l’âge
et le sexe de l'individu (H ou F).
Voici un extrait du fichier :
id age sexe 1 51 H 2 58 H 3 62 H 4 65 H 5 72 H 6 54 H
Chargeons nos données dans un dataframe "df_adherents" :
df_adherents <- read.table("salle_sport.csv", header = TRUE,
sep = ";",
quote = "\"",
fill = TRUE,
comment.char = "",
encoding="UTF-8")
Import de la librairie Ggplot2
Nous importons désormais la librairie Ggplot2 et paramétrons un thème. Les thèmes fournissent en quelque sorte un package de mise en forme (couleur, épaisseur de trait, etc ...). Il en existe une multitude (par défaut ou développés par des tiers). Vous n'aurez aucun mal à en trouver qui vous conviennent. Nous nous contenterons ici de choisir le thème "classic" et de positionner la légende en haut du graphique.
library(ggplot2)
theme_set(
theme_classic() +
theme(legend.position = "top")
)
L'histogramme simple
Pour commencer, traçons un simple histogramme afin d'illustrer la distribution des âges, tous sexes confondus.
histColor <- "#00AFBB"
ggplot(df_adherents, aes(x = age)) +
geom_histogram(color = histColor, fill = histColor,
bins = 9, alpha = 0.4) +
ggtitle("âge des adhérents") +
xlab("âge") + ylab("effectif") +
theme(
plot.title = element_text(size=9, hjust = 0.5, face="bold", color="black"),
axis.title = element_text(size=9)
)

Le code peut paraitre complexe de prime abord, mais plusieurs options ont volontairement été ajoutées afin que vous sachiez qu'elles
existent.
Nous initialisons tout d'abord une variable "histColor" destinée à recevoir la couleur de l'histogramme (code hexadecimal). Il s'agit en effet
d'une bonne pratique que de passer par une constante plutôt que de spécifier la valeur directement dans l'instruction. On peut penser, en effet,
que cette valeur pourrait être amener à changer.
Ensuite, plusieurs instructions se suivent, séparées par le signe + : la définition des données sources, le paramétrage de l'histogramme (amplitude
des classes, couleur), le titre du graphique, les titres des axes et enfin la mise en forme des titres.
La fonction "aes" que nous apercevons est très importante, c'est elle qui va mapper les données avec les propriétés visuelles du graphiques (aesthetic).
L'histogramme par groupe
Faisons à présent une ventilation par sexe.
histColor <- c("#00AFBB", "#E7B800")
ggplot(df_adherents, aes(x = age)) +
geom_histogram(aes(color = sexe, fill = sexe),
position = "identity", bins = 9, alpha = 0.4) +
scale_color_manual(values = histColor) +
scale_fill_manual(values = histColor) +
ggtitle("âge des adhérents") +
xlab("âge") + ylab("effectif") +
theme(
plot.title = element_text(size=9, hjust = 0.5, face="bold", color="black"),
axis.title = element_text(size=9)
)

Nous constatons 2 petites adaptations. Notre constante "histColor" est initialisée avec autant de valeurs que nous avons de groupes. Par ailleurs une seconde fonction "aes" est venue garnir l'appel à l'histogramme, elle a pour but de définir le champs sur lequel nous allons regrouper nos données.
Retrouvez dans la rubrique "Nos datasets" toutes les données dont vous aurez besoin pour tester et pratiquer !