La función scale_colour_discrete en R
-
Utilice
scale_colour_discrete
para modificar las etiquetas de escala decolour
en R -
Utilice
scale_colour_discrete
para modificar el nombre de la escala decolour
en R
Este artículo presentará cómo utilizar scale_colour_discrete
en R.
Utilice scale_colour_discrete
para modificar las etiquetas de escala de colour
en R
scale_colour_discrete
se puede utilizar para modificar las etiquetas de escala de colour
que generalmente deben tener valores discretos. En este caso, mostramos un ejemplo utilizando el conjunto de datos filtrado de babynames
, del cual solo se extraen cinco nombres para hacerlo más simple. Dibujamos una gráfica lineal usando geom_line
. Las variables asignadas en el eje x
/y
son el número de bebés y los años en que nacieron. Dado que los nombres se asignan a la escala de colour
, tendrán una leyenda donde se asignan diferentes colores a cada uno de ellos. Usando el parámetro labels
de la función scale_colour_discrete
, podemos pasar un vector de valores por el cual podemos sustituir las etiquetas de escala existentes.
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
Utilice scale_colour_discrete
para modificar el nombre de la escala de colour
en R
Otro parámetro útil de la función scale_colour_discrete
es name
, que controla el título de la escala de colour
. El valor de la cadena personalizada se puede asignar al argumento name
, lo que da como resultado un nombre de leyenda modificado en el siguiente código de ejemplo.
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
El gráfico anterior dibuja todas las líneas en un solo panel, pero podemos generar cada línea en uno separado usando la función facet_wrap
. facet_wrap
toma las variables que deben mapearse como primer argumento.
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