Comment attribuer des couleurs par facteur dans ggplot2 (avec exemples)



Souvent, vous souhaiterez peut-être attribuer des couleurs aux points d’un tracé ggplot2 en fonction d’une variable catégorielle.

Heureusement, cela est facile à faire en utilisant la syntaxe suivante :

ggplot(df, aes(x=x_variable, y=y_variable, color=color_variable)) +
  geom_point()

Ce didacticiel fournit plusieurs exemples d’utilisation pratique de cette syntaxe à l’aide de l’ensemble de données R intégré intitulé iris :

#view first six rows of iris dataset
head(iris)

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

Exemple 1 : utiliser les couleurs par défaut

Le code suivant montre comment attribuer des couleurs par défaut aux points d’un tracé ggplot2 en fonction de la variable factorielle Species :

library(ggplot2)

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species)) +
  geom_point() 

couleur par facteur dans ggplot2

Comme nous n’avons pas spécifié d’échelle de couleurs ni de liste de couleurs personnalisées, ggplot2 a simplement attribué une liste de couleurs rouge, verte et bleue par défaut aux points.

Exemple 2 : utiliser des couleurs personnalisées

Le code suivant montre comment attribuer des couleurs personnalisées aux points d’un tracé ggplot2 en utilisant scale_color_manual() :

library(ggplot2)

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species)) +
  geom_point() +
  scale_color_manual(values = c("setosa" = "purple",
                                "versicolor="orange",
                                "virginica"="steelblue")) 

ggplot2 avec des couleurs personnalisées pour la variable catégorielle

Notez que nous aurions également pu utiliser des codes de couleur hexadécimaux pour spécifier les couleurs.

Exemple 3 : utiliser une échelle de couleurs personnalisée

Le code suivant montre comment attribuer des couleurs personnalisées aux points d’un tracé ggplot2 à l’aide d’une échelle de couleurs personnalisée du package RColorBrewer :

library(ggplot2)
library(RColorBrewer)

#define custom color scale
myColors <- brewer.pal(3, "Spectral")
names(myColors) <- levels(iris$Species)
custom_colors <- scale_colour_manual(name = "Species Names", values = myColors)

ggplot(iris, aes(x=Sepal.Length, y=Sepal.Width, color=Species)) +
  geom_point() +
  custom_colors

Exemple RColorBrewer dans R

Ressources additionnelles

Comment créer des tracés côte à côte dans ggplot2
Comment changer le titre de la légende dans ggplot2
Un guide complet des meilleurs thèmes ggplot2

Ajouter un commentaire

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