美文网首页
8. ggplot2中局部放大和limits

8. ggplot2中局部放大和limits

作者: 心惊梦醒 | 来源:发表于2022-09-12 09:49 被阅读0次

      本篇和R for Data Science中关于limits的部分是一样的,之所以再写一遍仅仅是个人有了新的感悟之后想用不同的组织语言重新总结以下。
      scale limits和coordinate system limits的区别:两者实现的效果是x轴和y轴的坐标范围一致,但plot展示的数据信息已经完全不一样了。
      究其原因是两者的工作方式不同:设置scale limits,超过设置范围的数据被扔掉(ggplot2的默认行为);这是coordinate system limits,仍然使用所有的数据(full data),但只展示plot的一部分(zoom in)。

    base <- ggplot(mpg, aes(drv, hwy)) + 
      geom_hline(yintercept = 28, colour = "red") + 
      geom_boxplot() 
    
    base
    p2<-base + coord_cartesian(ylim = c(10, 35)) # works as expected
    p3<- base + ylim(10, 35) # distorts the boxplot 
    #> Warning: Removed 6 rows containing non-finite values (stat_boxplot).
    ggpubr::ggarrange(base,p2,p3,nrow=1)
    
    the difference between scale limits and coordinate system limits
      限制scale limits的同时又想使用full data,可以用scale_y_continous()oob(oob=out of boundary)参数。但p2p4还是有些许的差别。
    # default oob=scales::censor  (删减)
    # scales::squish (将边界外的值压到range内)
    p4<-base + scale_y_continuous(limits=c(10,35),oob = scales::squish)
    ggpubr::ggarrange(base,p2,p3,p4,nrow=1)
    
    out of boundary handing

    相关文章

      网友评论

          本文标题:8. ggplot2中局部放大和limits

          本文链接:https://www.haomeiwen.com/subject/aiwanrtx.html