我有这个情节
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的图例谢谢
答案 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来表示平均值,这在美学上会更好看。