本节接着上次的内容,目前已构建四个图形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')
合并图例成功
网友评论