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()