代码之家  ›  专栏  ›  技术社区  ›  lewisnix21

绘制单个geom\u平滑曲线,而不是多条[重复]

  •  3
  • lewisnix21  · 技术社区  · 7 年前

    我正在绘制一个包含3个不同类别的图形,这些类别由不同的颜色表示。我想要一条曲线来表示总数据的趋势,但当我使用geom\u 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")) 
    
    2 回复  |  直到 7 年前
        1
  •  6
  •   dmi3kno    7 年前

    有两种方法可以解决此问题: 1) 覆盖geom\u平滑层中的色彩美

       #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"))
    
        2
  •  1
  •   pogibas    7 年前

    您应该使用:

    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_point geom_smooth 颜色应为 region .
    • 指定时: geom_point(aes(color = region)) + geom_smooth() 您要求将点着色为区域,并要求所有区域的平滑线相同。