La funzione scale_colour_discrete in R

Jinku Hu 15 febbraio 2024
  1. Usa scale_colour_discrete per modificare le etichette di scala colour in R
  2. Usa scale_colour_discrete per modificare il nome della scala colour in R
La funzione scale_colour_discrete in R

Questo articolo introdurrà come usare scale_colour_discrete in R.

Usa scale_colour_discrete per modificare le etichette di scala colour in R

scale_colour_discrete può essere usato per modificare le etichette della scala colour che generalmente devono avere valori discreti. In questo caso, dimostriamo un esempio utilizzando il set di dati filtrato babynames, da cui vengono estratti solo cinque nomi per renderlo più semplice. Disegniamo un grafico a linee usando geom_line. Le variabili mappate sull’asse x/y sono il numero di bambini e gli anni in cui sono nati. Poiché i nomi sono mappati sulla scala colour, avranno una legenda in cui sono mappati colori diversi a ciascuno di loro. Usando il parametro labels della funzione scale_colour_discrete, possiamo passare un vettore di valori con cui possiamo sostituire le etichette di scala esistenti.

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

Usa scale_colour_discrete per modificare il nome della scala colour in R

Un altro parametro utile della funzione scale_colour_discrete è name, che controlla il titolo della scala colour. Il valore della stringa personalizzata può essere assegnato all’argomento name, che risulta in un nome di legenda modificato nel seguente codice di esempio.

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

Il grafico precedente disegna tutte le linee su un singolo pannello, ma possiamo stampare ogni riga su uno separato utilizzando la funzione facet_wrap. facet_wrap prende le variabili che devono essere mappate come primo argomento.

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 in r 3

Autore: 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

Articolo correlato - R Plot