ggplot2-legend 的两种颜色
Two Colors for ggplot2-legend
我目前正在尝试为 ggplot 2 中的图例或图例文本分配某些颜色。
图例中有两个条目,每个条目都应该有特定的颜色。
剧情目前是这样的:
目标是图例的文本与相应的图形具有相同的颜色。
重要说明:图表的颜色在额外变量中定义,不必从图中提取。图例文本颜色的变量存储在“Nutzer1Farbe”和“Nutzer2Farbe”中。
如果有人能解决我的问题,我将不胜感激!
周末愉快
尝试使用 ggtext
和下一个代码:
library(ggtext)
library(tidyverse)
#Code
datengesamt <- datengesamt %>%
# Convert to datetime
mutate(month = as.POSIXct(month))
plot.new()
ps <- xspline(datengesamt[,1], datengesamt[,2], 1, draw=FALSE)
pg <- xspline(datengesamt[,1], datengesamt[,3], 1, draw=FALSE)
pp <- list("Person 1" = data.frame(ps), "Person 2" = data.frame(pg)) %>%
bind_rows(.id = "id") %>%
mutate(x = lubridate::as_datetime(x))
#Plot
colors <- c('red','blue')
ggplot(pp, aes(x, y, color = id, linetype = id))+
theme(axis.line = element_line(colour = Farbe),
panel.background = element_rect(fill = "transparent", color = NA),
plot.background = element_rect(fill= "transparent", color = NA),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
legend.position = c(0.95,0.95),
legend.title = NULL,
legend.key=element_blank(),
legend.background = element_rect(fill = "transparent", colour = NA), # get rid of legend bg
legend.box.background = element_rect(fill = "transparent", colour = NA),
)+
geom_path(size=0.5) +
scale_color_manual(labels = paste("<span style='color:",
colors,
"'>",
unique(pp$id),
"</span>"),
values = colors)+
scale_linetype_manual(labels = paste("<span style='color:",
colors,
"'>",
unique(pp$id),
"</span>"),
values=c(Nutzer1Format,Nutzer2Format))+
scale_y_continuous(breaks = scales::pretty_breaks(n = 2))+
scale_x_datetime(date_labels = "%Y", breaks = scales::pretty_breaks(n = 3), expand = expansion(mult = c(0.02, 0.03)))+
xlab("Jahr")+
ylab("# Nachrichten")+
theme(axis.text.x = element_text(colour = Farbe))+
theme(axis.text.y = element_text(angle = 90,colour = Farbe),
legend.text = element_markdown())+
labs(color='id',linetype='id')
输出:
我目前正在尝试为 ggplot 2 中的图例或图例文本分配某些颜色。 图例中有两个条目,每个条目都应该有特定的颜色。
剧情目前是这样的:
目标是图例的文本与相应的图形具有相同的颜色。
重要说明:图表的颜色在额外变量中定义,不必从图中提取。图例文本颜色的变量存储在“Nutzer1Farbe”和“Nutzer2Farbe”中。
如果有人能解决我的问题,我将不胜感激!
周末愉快
尝试使用 ggtext
和下一个代码:
library(ggtext)
library(tidyverse)
#Code
datengesamt <- datengesamt %>%
# Convert to datetime
mutate(month = as.POSIXct(month))
plot.new()
ps <- xspline(datengesamt[,1], datengesamt[,2], 1, draw=FALSE)
pg <- xspline(datengesamt[,1], datengesamt[,3], 1, draw=FALSE)
pp <- list("Person 1" = data.frame(ps), "Person 2" = data.frame(pg)) %>%
bind_rows(.id = "id") %>%
mutate(x = lubridate::as_datetime(x))
#Plot
colors <- c('red','blue')
ggplot(pp, aes(x, y, color = id, linetype = id))+
theme(axis.line = element_line(colour = Farbe),
panel.background = element_rect(fill = "transparent", color = NA),
plot.background = element_rect(fill= "transparent", color = NA),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
legend.position = c(0.95,0.95),
legend.title = NULL,
legend.key=element_blank(),
legend.background = element_rect(fill = "transparent", colour = NA), # get rid of legend bg
legend.box.background = element_rect(fill = "transparent", colour = NA),
)+
geom_path(size=0.5) +
scale_color_manual(labels = paste("<span style='color:",
colors,
"'>",
unique(pp$id),
"</span>"),
values = colors)+
scale_linetype_manual(labels = paste("<span style='color:",
colors,
"'>",
unique(pp$id),
"</span>"),
values=c(Nutzer1Format,Nutzer2Format))+
scale_y_continuous(breaks = scales::pretty_breaks(n = 2))+
scale_x_datetime(date_labels = "%Y", breaks = scales::pretty_breaks(n = 3), expand = expansion(mult = c(0.02, 0.03)))+
xlab("Jahr")+
ylab("# Nachrichten")+
theme(axis.text.x = element_text(colour = Farbe))+
theme(axis.text.y = element_text(angle = 90,colour = Farbe),
legend.text = element_markdown())+
labs(color='id',linetype='id')
输出: