Die scale_colour_discrete Funktion in R
-
Verwenden Sie
scale_colour_discrete
, umcolour
-Skalenbeschriftungen in R . zu ändern -
Verwenden Sie
scale_colour_discrete
, um den Skalennamencolour
in R . zu ändern
In diesem Artikel wird die Verwendung von scale_colour_discrete
in R vorgestellt.
Verwenden Sie scale_colour_discrete
, um colour
-Skalenbeschriftungen in R . zu ändern
scale_colour_discrete
kann verwendet werden, um colour
-Skalenbeschriftungen zu ändern, die im Allgemeinen diskrete Werte haben müssen. In diesem Fall demonstrieren wir ein Beispiel mit dem gefilterten Datensatz babynames
, aus dem nur fünf Namen extrahiert werden, um es einfacher zu machen. Wir zeichnen ein Liniendiagramm mit geom_line
. Zugeordnete Variablen auf der x
/y
-Achse sind die Anzahl der Babys und die Jahre, in denen sie geboren wurden. Da die Namen der colour
zugeordnet sind, haben sie eine Legende, in der jedem unterschiedliche Farben zugeordnet sind von ihnen. Mit dem Parameter labels
der Funktion scale_colour_discrete
können wir einen Vektor von Werten übergeben, durch den wir die vorhandenen Skalenbeschriftungen ersetzen können.
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
Verwenden Sie scale_colour_discrete
, um den Skalennamen colour
in R . zu ändern
Ein weiterer nützlicher Parameter der Funktion scale_colour_discrete
ist name
, der den Skalentitel colour
steuert. Der benutzerdefinierte Zeichenkettenwert kann dem Argument name
zugewiesen werden, was im folgenden Beispielcode zu einem geänderten Legendennamen führt.
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
Der vorherige Plot zeichnet alle Linien auf einem einzigen Panel, aber wir können jede Linie mit der Funktion facet_wrap
auf einem separaten ausgeben. facet_wrap
nimmt als erstes Argument die Variablen, die gemappt werden müssen.
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