A função scale_colour_discrete em R

Jinku Hu 15 fevereiro 2024
  1. Use scale_colour_discrete para modificar as etiquetas de escala de colour em R
  2. Use scale_colour_discrete para modificar o nome da escala de colour em R
A função scale_colour_discrete em R

Este artigo irá apresentar como usar scale_colour_discrete em R.

Use scale_colour_discrete para modificar as etiquetas de escala de colour em R

scale_colour_discrete pode ser usado para modificar rótulos de escala de colour que geralmente precisam ter valores discretos. Nesse caso, demonstramos um exemplo usando o conjunto de dados filtrado babynames, do qual apenas cinco nomes são extraídos para torná-lo mais simples. Nós desenhamos um gráfico de linha usando geom_line. Variáveis ​​mapeadas no eixo x /y são o número de bebês e os anos em que nasceram. Como os nomes são mapeados para a escala de colour, eles terão uma legenda onde cores diferentes são mapeadas para cada deles. Usando o parâmetro labels da função scale_colour_discrete, podemos passar um vetor de valores pelo qual podemos substituir os rótulos 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 in r 1

Use scale_colour_discrete para modificar o nome da escala de colour em R

Outro parâmetro útil da função scale_colour_discrete é name, que controla o título da escala colour. O valor da string customizada pode ser atribuído ao argumento name, o que resulta em um nome de legenda modificado no código de exemplo a seguir.

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 em r 2

O gráfico anterior desenha todas as linhas em um único painel, mas podemos produzir cada linha em um painel separado usando a função facet_wrap. facet_wrap pega as variáveis ​​que precisam ser mapeadas como o primeiro 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 em 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

Artigo relacionado - R Plot