R语言绘制组合图

在用R语言做完图之后要想放在论文里,就需要把不同的图组合起来,尝试过用PPT,以及在Word里,效果都不太好,因此试着在R里组图(它的优势在于调图片清晰度比较方便)

首先说第一种

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#加载包
library(ggpubr)
library(ggplot2)
#组图
figure <- ggarrange(pp1,pp2,pp3, #需要组合的图
ncol = 3, nrow = 1) #ncol是一行放几个,nrow是放几列
figure

#这个是看要不要给组图加横纵标题什么的。"left"就是加在左边,其他的top,bottom等同理
figure2=annotate_figure(figure,left = text_grob("Normal nitrogen",color = "black",
size = 36,x = 0.5,y=0.5,rot=90)) #rot是旋转的角度
figure2
#这个是导出图片的
ggsave(filename="merge_Normal.png",
figure2,
width=30,
heigh=16.4,
dpi = 1000) #能设置dpi值,越大的话就越清晰,相应的也就越占内存

然后如果图片已经导出了的话,就再导进来改一下格式就好啦,如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
rm(list=ls())  #清一下运行环境,不然图片多容易卡
#导入图片
library(png)
setwd("D:/WU G.J/共现图/共现网络图片") #图片存储路径
#导入图片
img1 <- readPNG("Pic1.png")
img2 <- readPNG("Pic2.png")
#改格式
p1<-ggplot()+background_image(img1)+theme_void()
p2<-ggplot()+background_image(img2)+theme_void()

#之后就和上面的一样啦

figure <- ggarrange(pp1,pp2,pp3, #需要组合的图
ncol = 6, nrow = 3) #ncol是一行放几个,nrow是放几列
figure

#这个是看要不要给组图加横纵标题什么的。"left"就是加在左边,其他的top,bottom等同理
figure2=annotate_figure(figure,left = text_grob("Normal nitrogen",color = "black",
size = 36,x = 0.5,y=0.5,rot=90)) #rot是旋转的角度
figure2
#这个是导出图片的
ggsave(filename="merge_Normal.png",
figure2,
width=30,
heigh=16.4,
dpi = 1000) #能设置dpi值,越大的话就越清晰,相应的也就越占内存

在做的过程中我觉得比较有趣的一点就是①先组图再加标题还是②先加标题再组图 ,或者③加标题再组图,再加总的标题

总而言之,涉及的代码就是ggarrange函数(作用是组图)和annotate_figure函数(作用是加标题)这两句,灵活反复运用就行了