我正在运行代码,它可以正常工作
ggplot(data_df, aes(x= RR, y= PPW, col = year)) +
geom_point(size = 3, alpha=0.6)
现在,我尝试将(x,y)的平均值放在图形上,通过添加使其具有另一种颜色
ggplot(data_df, aes(x= RR, y= PPW, col = year))) +
geom_point(size = 3, alpha=0.6) +
geom_point(data=data_df, aes(x=mean(RR), y=mean(PPW)) +
geom_point(color="red")
可以,但是所有点的颜色现在都是红色
如果我将颜色放在这样的aes中,则平均点会得到另一种颜色,我也可以在图例中看到它
ggplot(data_df, aes(x= RR, y= PPW, col = year))) +
geom_point(size = 3, alpha=0.6) +
geom_point(data=data_df, aes(x=mean(RR), y=mean(PPW), color="red"))
我想手动给颜色。有可能吗?
答案 0 :(得分:1)
您缺少有关ggplot
如何管理美学的两个关键点:
每个geom_*
层都将从父aes
调用继承ggplot
设置,除非您手动覆盖它。因此,在您的第一个示例中,第三个geom_point
继承了x
的{{1}}和y
值,而不是其上方的“ mean”层,因此在每个彩色点的顶部。
ggplot
中的值将应用于刻度,而不按原样使用。因此,在第二个示例中,将aes
放在color = 'red'
中时,并不是将点设为红色,而是说颜色应由类别变量确定(这里的长度为1向量,由基于aes
的单词“ red”组成。您可以添加scale_color_*
并设置scale_color_manual
,以便该值呈现所需的颜色,也可以将'red' = 'red'
移到color=
之外,以便按原样进行解释(并且会将该图层中的所有点都设为红色)。
牢记这些要点,做您想做的事情就像将aes
移到color
之外一样简单:
aes