La función scale_colour_discrete en R

Jinku Hu 16 julio 2021
  1. Utilice scale_colour_discrete para modificar las etiquetas de escala de colour en R
  2. Utilice scale_colour_discrete para modificar el nombre de la escala de colour en R
La función scale_colour_discrete 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

scale_colour_discrete en r 1

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

scale_colour_discrete en r 2

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

scale_colour_discrete en r 3

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

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

Artículo relacionado - R Plot