具体脚本如下:
### 图形案例2-多样本群落组成柱状图### 读取案例数据 " genus.taxon.level6.txt ",并为每一行命名otu<-read.table(file="genus.taxon.level6.txt",header=T,check.names=FALSE,sep="\t") rownames(otu)<- otu[,1] otu<-otu[,-1] ### 获取所有样本群落组成信息 al<- which(rownames(otu) %in% c("All")) if(length(al))otu <-otu[-al,] ### 按行计算每个物种out总数,并排序 rowsum<-sapply(1:nrow(otu),function(x) sum(otu[x,])) otu<-otu[order(rowsum,decreasing=TRUE),] ### 将out数目转换为百分比 dat<-sapply(1:ncol(otu),function(x) otu[,x]/sum(otu[,x])) colnames(dat)<-colnames(otu) rownames(dat)<-rownames(otu) lab<-rownames(dat) ### 预先定义作图时代表各个物种的颜色mycol <-c(119,132,147,454,89,404,123,529,463,104,552,28,54,84,256,100,558,43,652,31,610,477,588,99,81,503,562,76,96,495)mycol<-colors()[rep(mycol,20)] ### 预先定义输出形式及宽度高度等信息,这里以tiff图片格式输出 tiff(file="bar.ALL.genus.taxon.level6.txt.tiff",width=750,height=700,pointsize=15) ### 为图形设置布局格式及图形四周边距 layout(matrix(1:2,2,1),heights=c(1:1.2)) par(mar=c(3,5,2,2)) barplot(dat*100,width=1,space=1.2,plot=T,las=1,col=mycol[1:nrow(dat)],cex.axis=1,cex.names=1,border=NA,ylab="Relativeabundance(%)",offset=0,cex.lab=1.2) ### 为第2个图形设置四周边距 par(mar=c(2,5,1,1)) plot.new() legend("topleft",legend=rownames(dat),ncol=3,fill=mycol[1:nrow(dat)],cex=0.8,bty="n") dev.off()
运行完都是错误,不能生成如下的图,初学者,这个问题很弱智哦!求详解
|