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')

输出: