R语言如何拼接多幅图片?
今天分享的笔记带你领略R语言Patchwork包独特的魅力,patchwork是一个非常流行的用于拼接 ggplot2 图形的包,以一种简单的方式对图形进行排列和组合,不论多复杂的组合图形,都能确保图形之间正确对齐,它提供一种类似四则运算的方法来拼接图形,非常易于使用。
学会儿这个技巧后,就可以减轻Ai中拼图的烦恼了,直接在R语言中生成组合图。
核心:拼图符号
-
+
:左右拼图,就是左右布局 -
|
:左右拼图,也是左右布局 -
/
:上下拼图,垂直构图布局
使用方法其实挺简单的,支持用括号来定义优先级,然后用上述符号即可将多张图拼接到一起。下面做个演示,生成四张图片,并保存到不同变量:
library(ggplot2)
library(patchwork)
#绘制第一个图
p1 <- ggplot(mpg,aes(displ,hwy,color = drv)) +
geom_point() +
ggtitle('Plot 1')
p1
#绘制第二个图
p2 <- ggplot(mpg, aes(class,hwy))+
geom_boxplot(fill = "lightblue") +
coord_flip()+
ggtitle('Plot 2')
p2
#绘制第三个图
p3 <- ggplot(mpg, aes(x = class, y = hwy)) +
geom_violin(trim = FALSE, alpha = 0.5,color = "#5DE2E7")+
ggtitle('Plot 3')
stat_summary(fun = mean,
fun.min = function(x) {mean(x) - sd(x)},
fun.max = function(x) {mean(x) + sd(x)},
geom = "pointrange",color = "red")
p3
#绘制第四个图
p4 <- ggplot(mpg, aes(class, fill = drv))+
geom_bar(position = position_dodge(preserve = "single"))+
ggtitle('Plot 4')
p4
将第一个图和第二个图横向拼接
p1 + p2
将四个图横向拼接
(p1 + p2) / (p3 + p4)
将第一个图和第二个图垂直拼接
p1 / p2
将四个图以三行排列
p1 + p2 + p3 + p4 +
plot_layout(nrow = 3, byrow = FALSE)
提示:plot_layout参数用于设置布局
设置子图标题和注释
(p2 | (p1 / p3)) +
plot_annotation(title = 'This is an amazing picture')
横向拼接并添加标签
p2 + p3 + p4 +
plot_annotation(tag_levels = 'I')
勤学如春起之苗,不见其增日有所长,希望大家多多进步! 今天分享的拼图小技巧就到这里,如果学会了记得点赞分享,你的鼓励是作者更新最大的动力。
参考资料
https://zhuanlan.zhihu.com/p/384456335
https://www.jianshu.com/p/73057774b4cb
本文由 mdnice 多平台发布