La fonction scale_colour_discrete dans R
-
Utilisez
scale_colour_discrete
pour modifier les étiquettes d’échelle decolour
dans R -
Utilisez
scale_colour_discrete
pour modifier le nom de l’échellecolour
dans R
Cet article présentera comment utiliser scale_colour_discrete
dans R.
Utilisez scale_colour_discrete
pour modifier les étiquettes d’échelle de colour
dans R
scale_colour_discrete
peut être utilisé pour modifier les étiquettes d’échelle de colour
qui ont généralement besoin d’avoir des valeurs discrètes. Dans ce cas, nous montrons un exemple utilisant l’ensemble de données filtré babynames
, à partir duquel seuls cinq noms sont extraits pour le rendre plus simple. Nous dessinons un tracé linéaire en utilisant geom_line
. Les variables mappées sur l’axe x
/y
sont le nombre de bébés et l’année de leur naissance. Étant donné que les noms sont mappés sur l’échelle des colour
, ils auront une légende où différentes couleurs sont mappées à chacun d’eux. En utilisant le paramètre labels
de la fonction scale_colour_discrete
, nous pouvons passer un vecteur de valeurs par lequel nous pouvons substituer les étiquettes d’échelle existantes.
library(ggplot2)
library(gridExtra)
library(babynames)
library(dplyr)
dat <- babynames %>%
filter(name %in% c("Alice", "Maude", "Mae",
"Annie", "Ella")) %>% filter(sex=="F")
p3 <- ggplot(dat, aes(x = year, y = n, colour = name)) +
geom_line() +
scale_colour_discrete(
labels = c("Al", "Mau", "Mae", "An", "El")) +
scale_y_continuous(
breaks = seq(0, 13000, 1000),
name = "Number of babies") +
scale_x_continuous(
breaks = seq(1880, 2017, 12),
name = "Year") +
theme(
legend.position = "left",
legend.background = element_rect(fill = "white", colour = "black"),
plot.title = element_text(
size = rel(1.2), lineheight = .9,
family = "Calibri", face = "bold", colour = "brown"
)) +
ggtitle("Name Popularity Through Years")
p3
Utilisez scale_colour_discrete
pour modifier le nom de l’échelle colour
dans R
Un autre paramètre utile de la fonction scale_colour_discrete
est name
, qui contrôle le titre de l’échelle colour
. La valeur de chaîne personnalisée peut être affectée à l’argument name
, ce qui entraîne un nom de légende modifié dans l’exemple de code suivant.
library(ggplot2)
library(gridExtra)
library(babynames)
library(dplyr)
dat <- babynames %>%
filter(name %in% c("Alice", "Maude", "Mae",
"Annie", "Ella")) %>% filter(sex=="F")
p3 <- ggplot(dat, aes(x = year, y = n, colour = name)) +
geom_line() +
scale_colour_discrete(
name = "Name",
labels = c("Al", "Mau", "Mae", "An", "El")) +
scale_y_continuous(
breaks = seq(0, 13000, 1000),
name = "Number of babies") +
scale_x_continuous(
breaks = seq(1880, 2017, 12),
name = "Year") +
theme(
legend.position = "left",
legend.background = element_rect(fill = "white", colour = "black"),
plot.title = element_text(
size = rel(1.2), lineheight = .9,
family = "Calibri", face = "bold", colour = "brown"
)) +
ggtitle("Name Popularity Through Years")
p3
Le tracé précédent dessine toutes les lignes sur un seul panneau, mais nous pouvons afficher chaque ligne sur un autre à l’aide de la fonction facet_wrap
. facet_wrap
prend les variables qui doivent être mappées comme premier argument.
library(ggplot2)
library(gridExtra)
library(babynames)
library(dplyr)
dat <- babynames %>%
filter(name %in% c("Alice", "Maude", "Mae",
"Annie", "Ella")) %>% filter(sex=="F")
p4 <- ggplot(dat, aes(x = year, y = n, colour = name)) +
geom_line() +
scale_colour_discrete(
name = "Name",
labels = c("Al", "Mau", "Mae", "An", "El")) +
scale_y_continuous(
breaks = seq(0, 13000, 1000),
name = "Number of babies") +
scale_x_continuous(
breaks = seq(1880, 2017, 12),
name = "Year") +
theme(
legend.position = "left",
legend.background = element_rect(fill = "white", colour = "black"),
plot.title = element_text(
size = rel(1.2), lineheight = .9,
family = "Calibri", face = "bold", colour = "brown"
)) +
ggtitle("Name Popularity Through Years") +
facet_wrap(vars(name))
p4
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook