【问题标题】:Plot a single geom_smooth curve instead of multiple [duplicate]绘制单个 geom_smooth 曲线而不是多个 [重复]
【发布时间】:2017-12-19 09:10:44
【问题描述】:

我正在绘制一个包含 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")) 

【问题讨论】:

    标签: r ggplot2 categories


    【解决方案1】:

    有两种方法可以解决这个问题: 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"))
    

    【讨论】:

    • 成功了,谢谢!
    【解决方案2】:

    你应该使用:

    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() 时,您要求将点着色为区域并且平滑线对于所有区域都相同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 2020-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多