patchwork包超快拼图(2)-进阶

作者: 灵活胖子的进步之路 | 来源:发表于2020-12-21 08:01 被阅读0次

    本节接着上次的内容,目前已构建四个图形p1-p4.

    patchwork包中用来调整排版设置的函数有plot_annotation()函数、plot_layout()函数、plot_spacer()函数等.

    plot_annotation()函数主要的作用在于给组合图形添加标签和标题等。

    函数使用比较简单,直接在组合图形后面使用+号连接该函数即可

    p1 + p2 + p3 + p4 +#加号必须在第一行表示代码还没结束 
    plot_annotation(tag_levels = "A",
                    title = "题目:组合图形",
                    caption = "右下角标题")
    
    组合图形

    使用tag_levels参数表示添加图形的标签,可以指定水平值为a、A、1、i、I等。

    plot_layout()函数可以用于组合图形的布局

    p1 + p2 + p3 + p4 + 
      plot_layout(ncol = 2,#图形设置为两列,默认按行填充,
                  widths = c(2, 1))#两列之间相对宽度比为2:1
    
    
    控制图形布局

    design参数接受文本字符串来指定图形布局

    design1 <- "122
                1#3           
                443"
    p1 + p2 + p3 + p4 + plot_layout(design = design1)
    #上面的design1表示将图形画板创建为9宫格布局,图1为在第1和4格,图2在第2和3格,图3在第6和9格,图4在7和8格,第5格是空的,用#号表示。
    
    用字符串控制图形比例及位置

    首先再构建两个图,其色板为连续性变量,纵坐标相同

    p4 <- ggdotplot(df,
              x="drat",
              y="mpg",
              fill = "mpg",
              title = "P4")
    p4
    p5 <- ggdotplot(df,
                     x="qsec",
                     y="mpg",
                     fill = "mpg",
                    palette = "material",
                    title = "P5")
    p5
    
    P5
    p4

    首先我们把两个图放在一起看看

    p4/p5
    
    两个图初步拼
    p4/p5 + plot_layout(guides='collect')
    

    竟然没有合并图例,又一次大型翻车现场,赶紧去搜R语言包知道网站https://rdrr.io/,查看下列子和说明文件,作者合并图例的说明文件如下
    原文作者的例子
    可以看到,如果用映射定义需要合并的图例,图例的内容应该是相同的color参数。
    参考上述例子,我们用pubr包的函数重新构建两个图片
    p6<- ggscatter(df, 
              x="carb", 
              y="mpg",
              color = "mpg",
              title = "p6")
    p6
    
    p6
    p7 <- ggscatter(df, 
                    x="cyl", 
                    y="mpg",
                    color = "mpg",
                    title = "p7")
    p7
    
    p7
    p6/p7+plot_layout(guides='collect')
    
    合并图例成功

    相关文章

      网友评论

        本文标题:patchwork包超快拼图(2)-进阶

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