R语言for循环中多图一页、一页一图

1.问题描述:数据如图1,我要按照group画每个分类的散点图,如图2,9个group在一个PDF文件的同一页



2.使用for循环和assign函数,画出9个group的图,储存在pp1-pp9,完了用cowplot进行合并到一个页面。

for(i in 1:9){

test2 = subset(test,group==i)

  assign(paste0("pp", i),ggplot(data = test2, aes(x=PC1,y=PC2))+geom_point(color="grey")+theme(legend.position = 'none'))

}

library("cowplot")

pdf("test.pdf",width=8.27,height=8.27)

plot_grid(pp1,pp2,pp3,pp4,pp5,pp6,pp7,pp8,pp9,ncol=3,nrow=3,hjust=1.5)

dev.off()

assign函数很妙,可以多个输出pp1-pp9,存9张图,使用方法为assign(变量名,你的任何函数)

3.另一种输出需求,把9张图,画到同个pdf 9页,每一页一个图

pdf("test.pdf",width=8.27,height=8.27) ##新建pdf

for(i in 1:9){

test2 = subset(test,group==i)

pp=ggplot(data = test2, aes(x=PC1,y=PC2))+geom_point(color="grey")+theme(legend.position = 'none')

print (pp)    ##每画一张图,就print输出到pdf中

}

dev.off()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容