美文网首页R语言教程good code
ggplot2 组图利器-pathwork

ggplot2 组图利器-pathwork

作者: xmu_zhang_lab | 来源:发表于2020-05-09 08:43 被阅读0次

    patchwork是一个软件包,旨在使R中的情节合成极为简单和强大。它主要供ggplot2的用户使用,并尽力确保ggplots正确对齐,无论您的合成结构多么复杂。

    在本教程中,我们将介绍使用拼凑而成的基础知识。最后,您将对API有了一个很好的了解,并准备好深入探讨其他小插曲所涵盖的一些更高级的主题。

    示例图

    我们将从创建一些示例图开始在本教程中使用:

    library(ggplot2)
    p1 <- ggplot(mtcars) + 
      geom_point(aes(mpg, disp)) + 
      ggtitle('Plot 1')
    
    p2 <- ggplot(mtcars) + 
      geom_boxplot(aes(gear, disp, group = gear)) + 
      ggtitle('Plot 2')
    
    p3 <- ggplot(mtcars) + 
      geom_point(aes(hp, wt, colour = mpg)) + 
      ggtitle('Plot 3')
    
    p4 <- ggplot(mtcars) + 
      geom_bar(aes(gear)) + 
      facet_wrap(~cyl) + 
      ggtitle('Plot 4')
    

    基本用法

    绝对最简单的用法是ggplot2中使用的+运算符的扩展,以允许将图加在一起:

    p1 + p2
    
    image.png

    将地块加在一起时,最后添加的地块将是活动地块,并将接收新添加的ggplot2对象(例如几何图形,标签等)的任何内容:

    p1 + p2 + labs(subtitle = 'This will appear in the last plot')
    
    image.png

    控制布局

    默认情况下,拼凑将尝试使网格保持正方形,并按行顺序填写

    p1 + p2 + p3 + p4
    
    image.png

    这可以通过添加plot_layout()来控制

    p1 + p2 + p3 + p4 + plot_layout(nrow = 3, byrow = FALSE)
    
    image.png

    plot_layout()具有各种令人惊叹的功能来控制合成的布局。有关所有选项的完整摘要,请参见布局小插图。

    堆积和包装地块

    通常,您希望将图放置在彼此之上或彼此相邻,而不是填写网格。尽管可以通过添加单行或单列布局来完成此操作,但拼凑而成的还提供了两个操作员来直接执行此操作,并进一步为布局提供了视觉提示。 |将地块并排放置,而/将其堆叠:

    p1 / p2
    
    image.png

    由于patchworks可以嵌套,因此这两个运算符通常足以创建相当复杂的布局

    p1 | (p2 / p3)
    
    image.png

    注释组成

    通常需要在作品中添加标题,标题,标签等。这可以通过在拼凑而成的基础上添加一个plot_annotation()来实现:

    (p1 | (p2 / p3)) + 
      plot_annotation(title = 'The surprising story about mtcars')
    
    image.png

    patchwork 提供自动标记功能,以识别文本中的子图:

    p1 + p2 + p3 + 
      plot_annotation(tag_levels = 'I')
    
    image.png

    标签可以是阿拉伯数字或罗马数字,也可以是拉丁字母,并且可以为不同的嵌套级别提供单独的标签。有关更多信息,请参见* Annotation *小插图。
    https://cran.r-project.org/web/packages/patchwork/vignettes/patchwork.html

    相关文章

      网友评论

        本文标题:ggplot2 组图利器-pathwork

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