在图例中手动添加键和文本标签,用于在所有方面重复的数据

Manually add a key and text label in the legend for data repeated in all facets

提问人:Bleras 提问时间:11/17/2023 更新时间:11/17/2023 访问量:20

问:

我正在尝试为某些数据添加一个键和一个文本标签,我希望在所有方面都重复这些数据。首先,我按照本论坛中阅读的过程在所有方面重复某些数据,而不创建新方面,然后在 aes() 中选择其颜色并设置 scale_color_manual(),但即使绘制了点,颜色也不正确,也没有显示在图例中。

有什么建议吗?

这是可重现的示例(请考虑它们不是真实数据,我想要单独的方面是有原因的):


example <- data.frame(group=c("A","A","A","B","B","B","C","C","C"),
           time=c(1,2,3,1,2,3,1,2,3),
           value=c(5,6,7,9,10,11,2,2,3))
example$group <- factor(example$group, levels=c("A","B","C"))


ggplot(data=example[example$group!="C",],
         aes(x=time, y=value))+
  geom_point(data=example[example$group!="C",],
         aes(color=group))+
  geom_point(data=select(example[example$group=="C",],
                         -group),
         aes(color="red"))+
  facet_grid(~group)+
  scale_color_manual(breaks=c("A","B","C"),
                     values=c("purple","green","red"))

是什么产生了以下情节:

enter image description here

当我不设置scale_color_manual时,组“C”的点在图例中表示,但没有使用正确的颜色。

enter image description here

我还尝试使用不同的 data.frames,但是当我从用于绘制“C”点的geom_point中删除变量组时,它们要么是无色的,在图例中没有表示,要么至少是无色的。有什么建议吗?提前致谢。

r ggplot2 颜色 facet-grid 图例-属性

评论


答:

1赞 stefan 11/17/2023 #1

而不是颜色名称映射,而是 aes 上的类别名称:"C"color

library(ggplot2)

ggplot(
  data = example[example$group != "C", ],
  aes(x = time, y = value)
) +
  geom_point(
    data = example[example$group != "C", ],
    aes(color = group)
  ) +
  geom_point(
    data = dplyr::select(
      example[example$group == "C", ],
      -group
    ),
    aes(color = "C")
  ) +
  facet_grid(~group) +
  scale_color_manual(
    breaks = c("A", "B", "C"),
    values = c("purple", "green", "red")
  )

评论

1赞 Bleras 11/17/2023
问题解决了。我非常感谢您的评论。当我达到 15 个声望点时,您将收到您的投票。