La funzione scale_colour_discrete in R

La funzione scale_colour_discrete in R

Lasha Khintibidze Jul-16, 2021 R R Plot
  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

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

Articolo correlato - R Plot

  • Aggiungi rettangolo trasparente a boxplot in R
  • Crea boxplot affiancati in R
  • La funzione scale_x_discrete in R
  • La funzione scale_y_continuous in R
  • Aggiungi una linea a un grafico con la funzione Lines() in R