1.利用facet_grid
代码如下:
准备数据
ini<-read.table('ini')
fina<-read.table('finalTOP10')
t1<-ini[1,c(1:8)]
t2<-fina[1,c(1:8)]
ti<-data.frame(table(ini[,1]))
tf<-data.frame(table(fina[,1]))
ti$DynaOrNot<-0
tf$DynaOrNot<-1
temp<-rbind(ti,tf)
temp$Name<-paste('Rank',1,seq="")
for(i in c(2:10)) {
ti<-data.frame(table(ini[,i]))
tf<-data.frame(table(fina[,i]))
ti$DynaOrNot<-0
tf$DynaOrNot<-1
t<-rbind(ti,tf)
t$Name<-paste('Rank',i,seq="")
temp<-rbind(temp,t)
}
利用Name区分分面,其中Name.代表分面标签在右,.Name代表分面标签在上
ggplot(temp)+
geom_bar(aes(x=Var1,y=as.numeric(Freq),fill=factor(DynaOrNot)),position='dodge',stat="identity")+labs(x='parameter',y="Frequency")+
labs(x="Parameter",y="Frequency")+
facet_grid(Name~.,scales = 'free')
2.利用cowplot包
library(cowplot)
for(i in c(2:10)) {
准备数据
ti<-data.frame(table(ini[,i]))
tf<-data.frame(table(fina[,i]))
ti$DynaOrNot<-0
tf$DynaOrNot<-1
t<-rbind(ti,tf)
t$Name<-paste('Rank',i,seq="")
temp<-t
将绘图整合在一起
plots[[i]]<-ggplot(t)+geom_bar(aes(x=Var1,y=as.numeric(Freq),fill=factor(DynaOrNot)),position='dodge',stat="identity")+labs(x='parameter',y="Frequency")+ggtitle(paste('rank',i,seq=""))
这个是关键代码,只有一行
plot_grid(plotlist = plots)
492622B5-E504-43FF-862A-4F4599C0133C.png3.利用gridExtra包
与2相同,只是最后红色代码变为
library(gridExtra)
grid.arrange(plots[[1]]...plots[[10]],ncol=1,nrow=10)
网友评论