library(vegan)
library(ggplot2)
library(permute)
library(lattice)
spe=read.table("spe.csv",header=T,row.names=1,sep=",")
envi=read.table("env.csv",header=T,sep=",",row.names=1)#选择有显著性相关关系理化因子
group <- read.table("group1.csv", header=F,sep=",",colClasses=c("character","character"))#用作产生图例,对样本进行分类
rda<-rda(spe,envi, scale=T)
sam <- data.frame(rda$CCA$u[,c(1,2)], group$V2) #提取样本得分
colnames(sam) <- c("RDA1","RDA2","group")
spec <- rda$CCA$v[,c(1,2)] #物种得分
spec <- as.data.frame(spec)
#可用于图中显示物种数据
#spec<-data.frame(spece=row.names(rda$CCA$v),RDA1=rda$CCA$v[,1],RDA2=rda$CCA$v[,2])
env <- rda$CCA$biplot[,c(1,2)] #环境因子得分
env <- as.data.frame(env)
rda1 =round(rda$CCA$eig[1]/sum(rda$CCA$eig)*100,2) #第一轴标签
rda2 =round(rda$CCA$eig[2]/sum(rda$CCA$eig)*100,2) #第二轴标签
#绘图对象的创建
col=c("red","black","purple","grey","orange")#可自定义颜色
p <- ggplot(data=sam,aes(RDA1,RDA2))
#几何对象
p <- p + geom_point(aes(colour=group,shape=group),size=4) +
#在图中显示物种
#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,19,19,19,19,19,19,19)) +
labs(title="RDA Plot",x=paste("RDA1 ",rda1," %"),y=paste("RDA2 ",rda2," %")) +
theme(text=element_text(family="serif"))
#去除背景以及网格线
p=p+theme_bw() + theme(panel.grid=element_blank()) + geom_hline(yintercept=0) + geom_vline(xintercept=0)
p=p + geom_segment(data = env,aes(x=0,y=0,xend = env[,1], yend = env[,2]), colour="black", size=1, arrow=arrow(angle=35, length=unit(0.3, "cm"))) +
geom_text(data=env, aes(x=env[,1], y=env[,2], label=rownames(env)),
size=4, colour="black",hjust = (1 - 2 * sign(env[ ,1])) / 5,
angle = (180/pi) * atan(env[ ,2]/env[ ,1]))
p
# RDA 排序进一步分析
sum=summary(rda)
sum
# 检验环境因子与群落结构差异相关显著性(Monte Carlo permutation test)
perm=permutest(rda,permu=999) # permu=999是表示置换循环的次数
perm
ef=envfit(rda,envi,permu=999) # 每个环境因子显著性检验
ef # CCA1 和 CCA2 两列所对应的值是环境因子箭头与排序轴夹角的余弦值,表示环境因子与排序轴的相关性。r2表示环境因子对物种分布的决定系数,r2越小,表示该环境因子对物种分布影响越小。Pr表示相关性的显著性检验
看到有很多同学问导入的数据格式问题,我重新写了一份详细的排序分析文章,发在了公众号“科学研究进行时”上,文章名称:R绘图-RDA排序分析,里面有数据格式的截图,大家可以扫描二维码关注查看。