Comment afficher les pourcentages sur l’histogramme dans ggplot2



Vous pouvez utiliser la syntaxe de base suivante pour afficher les pourcentages sur l’axe y d’un histogramme dans ggplot2 :

library(ggplot2)
library(scales)

#create histogram with percentages
ggplot(data, aes(x = factor(team))) +  
  geom_bar(aes(y = (..count..)/sum(..count..))) +
  scale_y_continuous(labels=percent)

Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.

Exemple 1 : histogramme de base avec pourcentages

Le code suivant montre comment créer un histogramme pour les variables catégorielles avec des pourcentages affichés sur l’axe Y :

library(ggplot2)
library(scales)

#define data frame
data <- data.frame(team = c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'),
                   points = c(77, 79, 93, 85, 89, 99, 90, 80, 68, 91, 92))

#create histogram with percentages
ggplot(data, aes(x = factor(team))) +  
  geom_bar(aes(y = (..count..)/sum(..count..))) +
  scale_y_continuous(labels=percent)

Exemple 2 : histogramme avec pourcentages (supprimer les décimales)

Vous pouvez également utiliser l’argument de précision pour afficher uniquement les nombres entiers sous forme de pourcentages sur l’axe des y :

library(ggplot2)
library(scales)

#define data frame
data <- data.frame(team = c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'),
                   points = c(77, 79, 93, 85, 89, 99, 90, 80, 68, 91, 92))

#create histogram with percentages
ggplot(data, aes(x = factor(team))) +  
  geom_bar(aes(y = (..count..)/sum(..count..))) +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1L))

histogramme ggplot2 avec pourcentages

Exemple 3 : histogramme personnalisé avec pourcentages

Le code suivant montre comment créer un histogramme avec des pourcentages affichés sur l’axe Y et un titre personnalisé, des étiquettes d’axe et des couleurs :

library(ggplot2)
library(scales)

#define data frame
data <- data.frame(team = c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'),
                   points = c(77, 79, 93, 85, 89, 99, 90, 80, 68, 91, 92))

#create histogram with percentages and custom aesthetics
ggplot(data, aes(x = factor(team))) +  
  geom_bar(aes(y = (..count..)/sum(..count..)), fill = 'lightblue') +
  scale_y_continuous(labels=percent) +
  labs(title = 'Breakdown by Team', x = 'Team', y = 'Percent of Total') +
  theme_minimal()

Connexe : Un guide complet des meilleurs thèmes ggplot2

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes avec des histogrammes dans R :

Comment modifier le nombre de bacs dans l’histogramme dans R
Comment tracer plusieurs histogrammes dans R
Comment créer un histogramme de fréquence relative dans R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *