Dans ce tutoreil, nous allons découvrir comment inverser l'ordre des clés de légende dans ggplot2.
Dans ggplot2, lorsque nous utilisons les paramètres color ou fill dans aes() pour colorer une variable, nous obtenons une légende avec des clés montrant quelles clés correspondent à quelles couleurs. Nous allons démontrer comment utiliser le paramètre guides() pour inverser l'ordre des clés de légende pour deux types de graphiques : un nuage de points avec une légende créée par le paramètre "color", et un graphique à barres avec une légende créée par le paramètre "fill".
Commençons par charger tidyverse.
library(tidyverse)
theme_set(theme_bw(16))
Nous utiliserons les données diamonds fournies par tidyverse.
diamonds %>% head()
Nuage de points avec des points colorés
Créons un nuage de points entre deux variables et colorons une troisième variable (catégorielle) en utilisant le paramètre color dans aes().
Ici, nous utilisons 200 points sélectionnés aléatoirement à partir des données diamonds à l'aide de la fonction slice_sample() pour créer le nuage de points.
diamonds %>%
slice_sample(n = 200) %>%
ggplot(aes(x = carat, y = price, color = cut)) +
geom_point()
ggsave("scatter_plot_default_legend.png")
Voici à quoi ressemble le nuage de points avec l'ordre par défaut des clés de légende.
Nous pouvons inverser l'ordre des clés de légende en utilisant la fonction guides() avec le paramètre color. Nous utilisons le paramètre color car la légende a été créée avec le paramètre color dans la fonction aes(). La fonction guidde_legend() avec reverse = TRUE inverse réellement l'ordre des clés de légende.
diamonds %>%
slice_sample(n = 200) %>%
ggplot(aes(x = carat, y = price, color = cut)) +
geom_point() +
guides(color = guide_legend(reverse = TRUE))
ggsave("scatter_plot_reversed_legend.png")
Graphique à barres avec couleur de remplissage
Dans le deuxième exemple, créons un graphique à barres avec une couleur de remplissage spécifiée par une deuxième variable. Nous utilisons ici le paramètre fill dans aes() pour ajouter la couleur aux barres.
diamonds %>%
ggplot(aes(x = cut, fill = clarity)) +
geom_bar() +
scale_fill_brewer(palette = "Dark2")
ggsave("bar_chart_default_legend.png")
Nous pouvons utiliser la fonction guides() avec cette fois le paramètre fill pour inverser l'ordre des clés de légende, car la légende a été créée avec le paramètre fill dans aes().
diamonds %>%
ggplot(aes(x = cut, fill = clarity)) +
geom_bar() +
scale_fill_brewer(palette = "Dark2") +
guides(fill = guide_legend(reverse = TRUE))
ggsave("bar_chart_reversed_legend.png")