R语言之可视化①⑧子图组合patchwork包

作者: 柳叶刀与小鼠标 | 来源:发表于2018-12-22 02:35 被阅读379次

    目录

    R语言之可视化①误差棒

    R语言之可视化②点图

    R语言之可视化③点图续

    R语言之可视化④点韦恩图upsetR

    R语言之可视化⑤R图形系统

    R语言之可视化⑥R图形系统续

    R语言之可视化⑦easyGgplot2散点图

    R语言之可视化⑧easyGgplot2散点图续

    R语言之可视化⑨火山图

    R语言之可视化⑩坐标系统

    R语言之可视化①①热图绘制heatmap

    R语言之可视化①②热图绘制2

    R语言之可视化①③散点图+拟合曲线

    R语言之可视化①④一页多图(1)

    R语言之可视化①⑤ROC曲线

    R语言之可视化①⑥一页多图(2)

    R语言之可视化①⑦调色板

    R语言之可视化①⑧子图组合patchwork包

    =======================

    正文

    其实前面已经介绍两个子图组合的博客,但是看到这个patchwork包还是眼前一亮,因为它非常简单易懂且功能强大

    普通功能

    • 安装
    # install.packages("devtools")
    devtools::install_github("thomasp85/patchwork")
    
    • 简单实例
    library(ggplot2)
    library(patchwork)
    
    p1 <- ggplot(mtcars) + geom_point(aes(mpg, disp))
    p2 <- ggplot(mtcars) + geom_boxplot(aes(gear, disp, group = gear))
    
    p1 + p2
    
    

    仅仅靠'+'符号便可以完成子图组合


    • 可以通过添加plot_layout()调用来指定画布的布局。 可以定义网格的尺寸以及分配给不同行和列的空间大小
    p1 + p2 + plot_layout(ncol = 1, heights = c(3, 1))
    
    • 增加图片画布中的空白
    p1 + plot_spacer() + p2
    

    -可以通过将部分子图包装在括号中来制作嵌套布局。在这种情况下,画布布局的范围为不同的嵌套级别。

    
    
    p3 <- ggplot(mtcars) + geom_smooth(aes(disp, qsec))
    p4 <- ggplot(mtcars) + geom_bar(aes(carb))
    
    p4 + {
      p1 + {
        p2 +
          p3 +
          plot_layout(ncol = 1)
      }
    } +
      plot_layout(ncol = 1)
    

    高级功能

    除了将图和布局一起添加之外,还定义了一些非常简单的运算符。 '- '功能类似'+',但将左侧和右侧放在相同的嵌套级别(而不是将右侧放入左侧嵌套级别)。

    p1 + p2 + p3 + plot_layout(ncol = 1)
    p1 + p2 - p3 + plot_layout(ncol = 1)
    

    我们可以看到现在(p1 + p2)和p3处于同一水平。

    • 通常我们只是想把子图简单组合。 提供了两个| 和/分别用于水平和垂直布局。 它们当然可以组合成一个非常易读的布局语法:
    (p1 | p2 | p3) /
          p4
    
    • 设置子图与图片主题
    (p1 + (p2 + p3) + p4 + plot_layout(ncol = 1)) * theme_bw()
    p1 + (p2 + p3) + p4 + plot_layout(ncol = 1) & theme_bw()
    

    可以使用&或将主题添加到所有子图中,而不是单独修改所有图。 两者的不同之处在于只会影响当前嵌套级别的图,&影像所有子图。


    相关文章

      网友评论

        本文标题:R语言之可视化①⑧子图组合patchwork包

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