2021年9月29日 星期三

R语言绘图|patchwork拼图

时间:2023-02-14 13:25:26来源 : 腾讯云

一、安装patchwork包

install.packages("patchwork")

library(patchwork)


(相关资料图)

二、简单运算符拼图

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)按➕排列图片

p1+p2+p3+p4
按图片输入顺序排列

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

p1|p2+p3 #p1占50%,p2和p3一共占50%

3) "/" 按行拼图

p1/p2/p3
(p1+p2)/p3 #可以把多个图合并成一行

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

p1+p2-p3+plot_layout(ncol = 1)  #p1和p2都在第一行,p3在第二行,一共一列,p1和p2看成一列
p1+p3-p2+plot_layout(ncol = 2) #效果和(p1+p3)|p2一样

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

p1+p2+p3+p4+p5+plot_layout(ncol = 2,heights = c(1,2,3)) #ncol设置两列,而且height是每行高度分别是1/2/3
p1+p2+(p3+p4+plot_layout(ncol = 2))+p5+plot_layout(widths = c(2,1))#p3和p4组合,并设置以两列方式组合,总体布局的宽度分别是2,1

6) theme函数修改主题

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

(p1*theme_bw())+(p2+p3)+p4+plot_layout(ncol = 1)#对p1使用theme_bw() 主题,p3和p2合并成一张图,并且拼成一列

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

(p1+(p2+p3)+p4+plot_layout(ncol = 1))&theme_bw()

总结:

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

三、进阶拼图

(1)坐标法

areas<-c(area(1,1,2,1),area(2,3,3,3))plot(areas)

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

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

再看一个例子

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)字母法(字母代表绘图区,#代表空白)

areas<-"A#B                 ##B             CCB"p1+p2+p3+plot_layout(design = areas)

四、调整图例

p1+p2+p4+guide_area()+plot_layout(guides = "auto")#一共是四个区域p1,p2,p3和图例区
guides="auto" 会显示相同的图例
p1+p2+p4+guide_area()+plot_layout(guides = "collect")
使用“collect“参数,相同的图例只会显示出一个

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

五、插入元素

p1+inset_element(p2,0.6,0.6,1,1)#图中的坐标同样表示插入图片的位置,(0.6,0.6)是图片的左下角点,(1,1)是图片右上角的点
p1+inset_element(p2,0,0.6,0.4,1)
更改坐标位置,可以把图片放到前面

六、插入空白 plot_spacer()

p1+plot_spacer()+p2#在p1和p2之间插入一个空白

七、插入图片标签

(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设置标签参数,包括颜色和大小

‼️自定义标签名称

(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语言搬运工

标签:

最近更新

R语言绘图|patchwork拼图

南阳市生态环境局淅川分局持续开展优化营商环境|环球今亮点

工作表扬信

消息!河南洛阳严查破坏营商环境问题

济源:聚焦“四优”打造“济速优办”品牌 奏响优化营商环境最强音

【天天新视野】西华县:开展人大监督评议 推动营商环境优化

新野县人民检察院:坚持观念引领 完善服务措施|每日热讯

南充一火锅店涉嫌侵犯消费者权益被处罚-天天快播报

国际复兴开发银行发布2023年1-3月贷款利率和利差_当前热讯

股权和股票哪个更好?股票和股权区别是什么?

短线投资是什么意思?中长线投资和短线投资的区别

资讯:美国周末发生多起枪案 造成至少12人死亡

每日热文:今天国际:公司大部分人员自春节假期结束后开始复工,部分项目春节期间仍然在加班,目前开工率无异常情况

我驻土耳其使馆开展紧急救援 中国公民一家三口获救

美国一地火车脱轨,毒云漫天、民众紧急撤离

凤凰传媒02月13日获沪股通增持23.45万股 今亮点

天府宇宙线研究中心成立 将为宇宙线研究提供科学支撑

国内首列多适应性中运量单轨系统车辆下线 世界观察

全球热点!河南这个县企业遇难题,可与书记、县长面谈!

20国施压,奥地利回应:有义务向参会俄代表发签证 每日速看

【新要闻】ChatGPT有何过人之处?如何看待它的争议和风险?专家解读→

公安部公布打击食品安全犯罪8起典型案例

热点!荷兰王后_关于荷兰王后的介绍

桐庐县消防救援大队开展烟花秀燃放点周边场所消防安全检查工作 全球看热讯

什么是阶段性目标_精选

世界观点:朋友家孩子过生日送什么礼物好

在自然状态下月球上可不可以种菜_热文

世界资讯:去年前11个月检察机关起诉行贿犯罪1208件1704人

美国纽约再次经历“血腥周末”:多地发生枪击案 至少2死9伤|焦点观察

新疆塔城地区乌苏市发生3.6级地震 震源深度18千米_每日报道

Back to Top