绘制一条 geom_smooth 曲线而不是多条曲线

Plot a single geom_smooth curve instead of multiple

我正在绘制一个图表,其中包含 3 个不同的类别,用不同的颜色表示。我想要一条曲线来表示总数据的趋势,但是当我使用 geom_smooth 时,我得到 3 条曲线,每个类别一条。我的代码是:

#plot the data
ggplot(data=transfer_data, aes(x=DATE_OF_TRANSFER, y=NUMBER_OF_TRANSFERS, colour = region)) + geom_point() + geom_smooth() + scale_colour_manual(values=c("green", "blue", "red", "orange")) 

有两种解决方法: 1) 覆盖 geom_smooth 层

中的颜色美学
   #plot the data
   ggplot(data=transfer_data, 
          mapping=aes(x=DATE_OF_TRANSFER, 
                      y=NUMBER_OF_TRANSFERS, 
                      colour = region)) + 
    geom_point() + 
    geom_smooth(color="black") + 
    scale_colour_manual(values=c("green", "blue", "red", "orange"))

或 2) 仅将颜色美学移动到需要它的层

   #plot the data
   ggplot(data=transfer_data, 
          mapping=aes(x=DATE_OF_TRANSFER, 
                      y=NUMBER_OF_TRANSFERS)) + 
    geom_point(mapping=aes(colour = region)) + 
    geom_smooth() + 
    scale_colour_manual(values=c("green", "blue", "red", "orange"))

你应该使用:

library(ggplot2)
ggplot(transfer_data, aes(DATE_OF_TRANSFER, NUMBER_OF_TRANSFERS)) + 
    geom_point(aes(color = region)) + 
    geom_smooth() + 
    scale_colour_manual(values = c("green", "blue", "red", "orange"))
  • 当您指定:ggplot(data=transfer_data, aes(x=DATE_OF_TRANSFER, y=NUMBER_OF_TRANSFERS, colour = region)) 时,您要求 geom_pointgeom_smooth 都应由 region 着色。
  • 当指定:geom_point(aes(color = region)) + geom_smooth() 时,您要求将点着色为区域,并且所有区域的平滑线都相同。