La funzione scale_colour_discrete in R
-
Usa
scale_colour_discrete
per modificare le etichette di scalacolour
in R -
Usa
scale_colour_discrete
per modificare il nome della scalacolour
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
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
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
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