Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >R语言绘图|patchwork拼图

R语言绘图|patchwork拼图

原创
作者头像
顾卿岚
发布于 2023-02-09 15:48:09
发布于 2023-02-09 15:48:09
1.9K00
代码可运行
举报
运行总次数:0
代码可运行

一、安装patchwork包

install.packages("patchwork")

library(patchwork)

二、简单运算符拼图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1<-ggplot(data = diamonds) +  geom_bar(mapping = aes(x = cut,fill=clarity))


p2<-ggplot(data = diamonds) +  geom_bar(mapping = aes(x = cut, fill = clarity), position = "dodge")




p3<-ggplot(data = diamonds) +  geom_bar(mapping = aes(x = cut))




p4<-ggplot(data = iris,mapping = aes(x = Species, y = Sepal.Width,
 fill = Species)) +geom_boxplot()+  geom_jitter()

p5<-ggplot(data = mpg, mapping = aes(x = class, y = hwy)) + 
  geom_boxplot() +
  coord_flip()

(先任意绘制五张图分别命名为p1,p2,p3,p4,p5)

1)按➕排列图片

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1+p2+p3+p4
按图片输入顺序排列
按图片输入顺序排列

2)“|”对画布进行分割

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1|p2+p3 #p1占50%,p2和p3一共占50%

3) "/" 按行拼图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1/p2/p3
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(p1+p2)/p3 #可以把多个图合并成一行

4)plot_layout()调整行数和列数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1+p2-p3+plot_layout(ncol = 1)  #p1和p2都在第一行,p3在第二行,一共一列,p1和p2看成一列
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1+p3-p2+plot_layout(ncol = 2) #效果和(p1+p3)|p2一样

5)plot_layout() 调节行列的宽度和高度

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1+p2+p3+p4+p5+plot_layout(ncol = 2,heights = c(1,2,3)) 
#ncol设置两列,而且height是每行高度分别是1/2/3
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1+p2+(p3+p4+plot_layout(ncol = 2))+p5+plot_layout(widths = c(2,1))
#p3和p4组合,并设置以两列方式组合,总体布局的宽度分别是21

6) theme函数修改主题

a) *theme_参数()设置局部主题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(p1*theme_bw())+(p2+p3)+p4+plot_layout(ncol = 1)
#对p1使用theme_bw() 主题,p3和p2合并成一张图,并且拼成一列

b)()& theme_参数 设置所有图片的主题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(p1+(p2+p3)+p4+plot_layout(ncol = 1))&theme_bw()

总结:

theme_ 的参数有很多,可以设置不同主题,根据需要选择

三、进阶拼图

(1)坐标法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
areas<-c(area(1,1,2,1),area(2,3,3,3))
plot(areas)

说明:有两个area函数说明绘制了两个区域,第一区域的开始位置坐标是(1,1),结束位置是(2,1)

第二个区域开始坐标是(2,3),结束位置是(3,3)

再看一个例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
layout<-c(area(1,1,1,1),area(1,3,3,3),area(3,1,3,2))
plot(layout)

说明:有三个area函数说明绘制了三个区域,第一区域的开始位置坐标是(1,1),结束位置是(1,1)

第二个区域开始坐标是(1,3),结束位置是(3,3)

第三个区域开始坐标是(3,1),结束位置是(3,2)

(2)字母法(字母代表绘图区,#代表空白)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
areas<-"A#B
         
        ##B
     
        CCB"


p1+p2+p3+plot_layout(design = areas)

四、调整图例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1+p2+p4+guide_area()+plot_layout(guides = "auto")
#一共是四个区域p1,p2,p3和图例区
guides="auto" 会显示相同的图例
guides="auto" 会显示相同的图例
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1+p2+p4+guide_area()+plot_layout(guides = "collect")
使用“collect“参数,相同的图例只会显示出一个
使用“collect“参数,相同的图例只会显示出一个

⚠️⚠️ guides的参数 "auto" , "collect" , "keep"

五、插入元素

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1+inset_element(p2,0.6,0.6,1,1)
#图中的坐标同样表示插入图片的位置,(0.6,0.6)是图片的左下角点,(1,1)是图片右上角的点
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1+inset_element(p2,0,0.6,0.4,1)
更改坐标位置,可以把图片放到前面
更改坐标位置,可以把图片放到前面

六、插入空白 plot_spacer()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p1+plot_spacer()+p2
#在p1和p2之间插入一个空白

七、插入图片标签

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(p1|p2)/(p3|p4)+plot_annotation(tag_levels = "A")&theme(plot.tag=element_text(color="blue",size=16))

tag_levels的参数:“A”大写字母 ;“a”小写字母 ;“i”小写罗马字母 ;“I”大写字母罗马字母 ;“1”数字排序

theme设置标签参数,包括颜色和大小

‼️自定义标签名称

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(p1|p2)/(p3|p4)+plot_layout(tag_level = "new")
+plot_annotation(tag_levels = list(c("A1","A2","A3","A4")))
&theme(plot.tag = element_text(color = "grey",size = 16))

plot_layout(tag_level ="new") 设定自定义标签

tag_levels =list(c("A1","A2","A3","A4"))设置标签名称

⚠️文章参考于b站视频——R语言搬运工

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用patchwork进行拼图的一些细节
说到拼图,那必须得好好学习patchwork包,这个包是Thomas大佬的作品,一经推出就火了,迅速取代了R中其他的拼图包。
医学和生信笔记
2022/11/15
5.3K0
使用patchwork进行拼图的一些细节
ggplot2 图形排版:patchwork 包复杂排版
前面我们学习了 patchwork 包排版 ggplot2 图形的简单入门,今天来学习下 patchwork 包的复杂排版。
章鱼猫先生
2021/10/15
6.2K0
ggplot2 图形排版:patchwork 包复杂排版
R语言图形拼接神器:Patchwork包入门指南
Patchwork 是一个非常流行的用于拼接 ggplot2 图形的包。它提供了一种类似四则运算的方法来拼接图形,非常易于使用,是拼接 ggplot2 图形的首选工具。
简说基因
2024/12/23
2620
R语言图形拼接神器:Patchwork包入门指南
R语言 多图布局一个函数就够:plot_layout
上图 p1 + p2 + p3 + p4 + p5 + plot_layout(byrow = FALSE)
拴小林
2021/05/31
2.4K0
R语言 多图布局一个函数就够:plot_layout
R语言之可视化①⑧子图组合patchwork包目录正文
-可以通过将部分子图包装在括号中来制作嵌套布局。在这种情况下,画布布局的范围为不同的嵌套级别。
用户1359560
2018/12/28
1.3K0
绘图布局patchwork
大家对ggplot2的绘图语法应该都很熟悉,但是如何多个图进行合理的拼接,一直是很头疼的事情,于是就有了patchwork包的诞生。此包主要的功能就是来对绘制的ggplot结果进行拼接展示。我们首先看下包的安装:
一粒沙
2022/03/14
8940
绘图布局patchwork
跟着Nature学作图:R语言ggplot2箱线图/散点图/patchwork包组合图
https://www.nature.com/articles/s41586-022-05349-x
用户7010445
2023/11/13
1K0
跟着Nature学作图:R语言ggplot2箱线图/散点图/patchwork包组合图
patchwork--快速掌握科研论文图片排版
在发表论文时候,经常会看到高大上的图片排列及绘制。通常我们用软件(spss+excel等)绘制好图片,都是单个figure。有时候很有必要将这些图片进行组合。一般都是PPT或者PS进行
Jamesjin63
2022/11/03
1.7K0
patchwork--快速掌握科研论文图片排版
用R来拼图和排版,告别AI和PS(一)
我相信大家在看文章的时候都见过下面这样的图,这张图实际上是由5张子图经过排版而拼接起来的。
生信交流平台
2022/09/21
7340
用R来拼图和排版,告别AI和PS(一)
121-R可视化39-对拼图结果做标记
其实这样的操作,在[[88-R可视化20-R的几种基于ggplot的拼图解决方案]] 中,就已经提到了。这里来进行一下总结。
北野茶缸子
2022/04/05
6110
121-R可视化39-对拼图结果做标记
目前最全的R语言-图片的组合与拼接
李誉辉,四川大学硕士在读,研究数据分析与可视化,以及网络爬虫。誉辉兄最近出的文章都是很系统的,从R ggplot2的基础讲解到三维数据可视化plot3D,文章都整理讲解得很全面系统,我本人也是很喜欢这样的文章,故而推荐给大家。
生信宝典
2019/09/29
5.6K0
目前最全的R语言-图片的组合与拼接
跟着Nature学作图:R语言ggplot2箱线图/堆积柱形图完整示例
https://www.nature.com/articles/s41586-022-04808-9#MOESM8
用户7010445
2023/01/06
1.7K0
跟着Nature学作图:R语言ggplot2箱线图/堆积柱形图完整示例
R语言 基础作图
*ggplot2中通过不同的geom函数生成图层,从前往后覆盖,因此需要考虑函数书写的顺序
Magnolia
2023/01/06
1.4K0
用R来拼图和排版,告别AI和PS(三):添加注释信息
前面我们讲了用R来拼图和排版,告别AI和PS(一)和用R来拼图和排版,告别AI和PS(二):调节宽度和高度,今天我们来看看如何给图片添加一些注释信息。
生信交流平台
2022/09/21
5490
用R来拼图和排版,告别AI和PS(三):添加注释信息
(文末送书)绘图技巧 | 一行代码实现多图组合和风格主题设置
如果现在你还是将自己制作的图表放在PS或者PPT中进行随意组合的话,那么这篇文章你就得好好看看了,今天小编就给大家安利一个超强的突变自由组合包-patchwork,让你轻松实现多图的自由组合。下面小编结合实例介绍一下该包的主要用法:
DataCharm
2021/04/16
6040
(文末送书)绘图技巧 | 一行代码实现多图组合和风格主题设置
用R来拼图和排版,告别AI和PS(四):布局
前面我们已经通过三期的内容来讲解了如何使用R包patchwork来拼图,排版和添加注释信息。
生信交流平台
2022/09/21
7520
用R来拼图和排版,告别AI和PS(四):布局
跟着Molecular Systems Biology学作图:R语言ggplot2多图组合到一起
https://www.embopress.org/doi/full/10.15252/msb.202110625
用户7010445
2021/12/09
6540
跟着Molecular Systems Biology学作图:R语言ggplot2多图组合到一起
scRNA分析|单细胞文献Fig1中的分组umap图和细胞比例柱形图
类似2021年CELL 文章Single-cell landscape of the ecosystem in early-relapse hepatocellular carcinoma,单细胞文献的Fig1一般会有细胞类型的全局umap图,分样本 和 分组的umap图 ,以及分样本 和 分组的细胞类型比例柱形图。
生信补给站
2022/11/11
7.4K0
scRNA分析|单细胞文献Fig1中的分组umap图和细胞比例柱形图
R海拾遗-图片拼接
对于ggplot,不支持将多个图片拼接的操作,因此绝大多数的人使用ps或者ppt进行拼接图片,包括我,现在可以使用软件包来完成
火星娃统计
2020/09/15
9620
R海拾遗-图片拼接
你还缺scRNA-seq的workflow吗?
之前曾老师给我看了一位在pipebio工作的生信工程师Roman Hillje的scRNA-seq的workflow,今天整理一下分享给大家。
生信菜鸟团
2024/07/31
3680
你还缺scRNA-seq的workflow吗?
相关推荐
使用patchwork进行拼图的一些细节
更多 >
LV.0
这个人很懒,什么都没有留下~
作者相关精选
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验