微生物生态排序分析——CCA分析
library(vegan)
library(ggplot2)
library(permute)
library(lattice)
sa4=read.table("spes.csv",header=T,row.names=1,sep=",")
S8.p=read.table("S8.p.csv",header=T,sep=",",row.names=1)#选择有显著性相关关系理化因子
group <- read.table("name.csv", header=F,sep=",",colClasses=c("character","character"))#用作产生图例,对样本进行分类
cca<-cca(sa4,S8.p, scale=T)
sam <- data.frame(cca$CCA$u[,c(1,2)], group$V2) #提取样本得分
colnames(sam) <- c("CCA1","CCA2","group")
spec <- cca$CCA$v[,c(1,2)] #物种得分
spec <- as.data.frame(spec)
#可用于图中显示物种数据
#spec<-data.frame(spece=row.names(cca$CCA$v),RDA1=cca$CCA$v[,1],RDA2=cca$CCA$v[,2])
env <- cca$CCA$biplot[,c(1,2)] #环境因子得分
env <- as.data.frame(env)
cca1 =round(cca$CCA$eig[1]/sum(cca$CCA$eig)*100,2) #第一轴标签
cca2 =round(cca$CCA$eig[2]/sum(cca$CCA$eig)*100,2) #第二轴标签
#绘图对象的创建
p <- ggplot(data=sam,aes(CCA1,CCA2))
#几何对象
p <- p + geom_point(aes(colour=group,shape=group),size=5) +
#在图中显示物种
#geom_point(data=spec,aes(shape=spece),size=2) + scale_shape_manual(values=seq(0,20))+
#添加样本标签
#geom_text(aes(label=rownames(sam)),
# size=4,hjust=0.5,vjust=-0.7,position = "jitter") +
scale_shape_manual(values=c(19,19,19,19,19)) +
labs(title="CCA Plot",x=paste("CCA1 ",cca1," %"),y=paste("CCA2 ",cca2," %")) +
theme(text=element_text(family="serif"))
#去除背景以及网格线
p=p+theme_bw() + theme(panel.grid=element_blank())
p=p + geom_segment(data = env,aes(x=0,y=0,xend = env[,1], yend = env[,2]), colour="purple", size=1.5, arrow=arrow(angle=35, length=unit(0.3, "cm"))) +
geom_text(data=env, aes(x=env[,1], y=env[,2], label=rownames(env)),
size=5, colour="purple",hjust = (1 - 2 * sign(env[ ,1])) / 3,
angle = (180/pi) * atan(env[ ,2]/env[ ,1]))
看到有很多同学问导入的数据格式问题,我重新写了一份详细的排序分析文章,发在了公众号“科学研究进行时”上,文章名称:R绘图-RDA排序分析,里面有数据格式的截图,大家可以扫描二维码关注查看。