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

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

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

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

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

p1 + p2 + p3 + p4 +#加号必须在第一行表示代码还没结束 
plot_annotation(tag_levels = "A",
                title = "题目:组合图形",
                caption = "右下角标题")
patchwork包超快拼图(2)-进阶_第1张图片
组合图形

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

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

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

patchwork包超快拼图(2)-进阶_第2张图片
控制图形布局

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格是空的,用#号表示。
patchwork包超快拼图(2)-进阶_第3张图片
用字符串控制图形比例及位置

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

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
patchwork包超快拼图(2)-进阶_第4张图片
P5

patchwork包超快拼图(2)-进阶_第5张图片
p4

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

p4/p5
patchwork包超快拼图(2)-进阶_第6张图片
两个图初步拼
p4/p5 + plot_layout(guides='collect')

patchwork包超快拼图(2)-进阶_第7张图片

竟然没有合并图例,又一次大型翻车现场,赶紧去搜R语言包知道网站 https://rdrr.io/,查看下列子和说明文件,作者合并图例的说明文件如下
patchwork包超快拼图(2)-进阶_第8张图片
原文作者的例子

可以看到,如果用映射定义需要合并的图例,图例的内容应该是相同的color参数。
参考上述例子,我们用pubr包的函数重新构建两个图片

p6<- ggscatter(df, 
          x="carb", 
          y="mpg",
          color = "mpg",
          title = "p6")
p6
patchwork包超快拼图(2)-进阶_第9张图片
p6
p7 <- ggscatter(df, 
                x="cyl", 
                y="mpg",
                color = "mpg",
                title = "p7")
p7
patchwork包超快拼图(2)-进阶_第10张图片
p7
p6/p7+plot_layout(guides='collect')
patchwork包超快拼图(2)-进阶_第11张图片
合并图例成功

你可能感兴趣的:(patchwork包超快拼图(2)-进阶)