将图例添加到带有2个geom点的绘图中

时间:2018-03-21 19:26:04

标签: r ggplot2

我有这个情节

dat = data.frame(group = rep("A",3),subgroup= c("B","C","D"), value= c(4,5,6),avg = c(4.5,4.5,4.5))
ggplot(dat, aes(x= group, y =value, color = fct_rev(subgroup) ))+ 
  geom_point()+
  geom_point(data = dat  ,aes(x = group, y = avg), color = "blue",pch = 17, inherit.aes = FALSE)

我需要显示2个图例:1个用于fct_rev(子组),我已经在那里,但没有“avg”的图例。

如何添加标题为“avg?

”的蓝色三角形pch 17的图例

谢谢

2 个答案:

答案 0 :(得分:1)

也许是这样的?

ggplot(dat, aes(x= group, y =value, color = fct_rev(subgroup) ))+ 
    geom_point()+
    geom_point(data = dat  ,aes(x = group, y = avg,shape = "Mean"), 
                                color = "blue", inherit.aes = FALSE) + 
    scale_shape_manual(values = c('Mean' = 17))

答案 1 :(得分:0)

使用原始帖子中的数据。

传奇在ggplot中不像那样工作。为什么不平均添加geom_text?我看到你有一个平均重复的列。这似乎是一种处理数据的坏方法,但现在却无关紧要。

我建议的解决方案:

ggplot(dat)+ 
    geom_point(aes(x= group, y =value, color = subgroup))+
    geom_point(aes(x = group, y = avg), color = "blue",pch = 17, inherit.aes = FALSE) + 
geom_text(aes(x=1, y = 4.5), label = "avg", nudge_x = .1)

您还可以添加一个hline来表示平均值,这在美学上会更好看。