Comment créer un histogramme avec différentes couleurs dans R



Souvent, vous souhaiterez peut-être créer un histogramme comportant plusieurs couleurs différentes dans R.

Les exemples suivants montrent comment procéder en base R et en ggplot2 .

Exemple 1 : histogramme avec différentes couleurs en base R

Le code suivant montre comment créer un histogramme avec une seule couleur en base R :

#create data frame
df <- data.frame(x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))

#create histogram
hist(df$x)

Par défaut, toutes les couleurs des barres sont les mêmes dans l’histogramme.

Cependant, nous pouvons utiliser le code suivant pour créer un histogramme avec trois couleurs différentes :

#create data frame
df <- data.frame(x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))

#define histogram break points
hist_breaks <- hist(df$x)$breaks

#define colors to use in histogram based on break points
color_list <- rep('red', length(hist_breaks))
color_list[hist_breaks < 20] <- 'blue'
color_list[hist_breaks < 16] <- 'purple'

#create histogram with custom colors 
hist(df$x, col=color_list)

histogramme avec différentes couleurs dans R

Voici comment la logique a fonctionné pour créer les trois couleurs :

  • Tout d’abord, nous avons spécifié que chaque barre était rouge .
  • Ensuite, nous avons changé chaque barre avec un point d’arrêt inférieur à 20 pour qu’elle soit bleue .
  • Ensuite, nous avons changé chaque barre avec un point d’arrêt inférieur à 16 pour qu’elle soit violette .

Le résultat final est un histogramme à trois couleurs.

Exemple 2 : histogramme avec différentes couleurs dans ggplot2

Supposons que nous ayons le bloc de données suivant dans R :

#create data frame
df <- data.frame(x=c(12, 14, 14, 15, 15, 17, 19, 22, 23, 23, 24))

#view data frame
df

    x
1  12
2  14
3  14
4  15
5  15
6  17
7  19
8  22
9  23
10 23
11 24

Pour créer un histogramme avec différentes couleurs pour ce bloc de données, nous devons d’abord créer une variable de regroupement pour les valeurs à l’aide d’une instruction if else imbriquée :

#create grouping variable
df$group = ifelse(df$x < 16, 'C', ifelse(df$x < 20, 'B', 'A'))

#view updated data frame
df

    x group
1  12     C
2  14     C
3  14     C
4  15     C
5  15     C
6  17     B
7  19     B
8  22     A
9  23     A
10 23     A
11 24     A

Nous pouvons maintenant créer un histogramme dans ggplot2 et définir les couleurs dans le tracé à l’aide de la variable group :

#create histogram with custom colors
ggplot(df, aes(x, fill=group)) +
  geom_histogram(bins=6, color='black') +
   scale_fill_manual(values = c('A' = 'red',
                                'B' = 'blue',
                                'C' = 'purple'))

Le résultat final est un histogramme à trois couleurs.

Remarque : Vous pouvez trouver la documentation complète de scale_fill_manual() ici .

Ressources additionnelles

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

Comment créer un histogramme de fréquence relative dans R
Comment superposer une courbe normale sur un histogramme dans R
Comment spécifier des ruptures d’histogramme dans R

Ajouter un commentaire

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