R、主成分分析(PCA)、ggplot2

R、主成分分析(PCA)、ggplot2

 在生態環境領域中,作爲非約束排序的方法之一,主成分分析(PCA)是我們常用的分析方法。本文以R語言vegan包rda函數演示主座標排序及基於ggplot2繪圖。

a=read.csv("D:/wykt/sp.csv",header = T,row.names = 1)
library(vegan)
library(ggplot2)
library(ggrepel)
dd=rda(log10(a))###此處對物種數據取對數作轉化,可根據自己數據選擇合適的轉化方法
oo=summary(dd)
site=as.data.frame(oo$sites)###提取樣方座標
spp=as.data.frame(oo$species)###提取物種座標
grp=as.data.frame(c(rep("a",4),rep("b",4),rep("c",4),rep("d",4)))###根據樣方類型分組
colnames(grp)="group"
###以下開始作圖
ggplot()+
  geom_point(data=site,aes(x=PC1,y=PC2,shape=grp$group,fill=grp$group),size=4)+
  scale_shape_manual(values = c(21:24))+
    geom_segment(data=spp,aes(x=0,y=0,xend=PC1,yend=PC2),
               arrow = arrow(angle = 22.5,length = unit(0.35,"cm"),
                             type="closed"),linetype=1,size=1,color="red")+
  geom_text_repel(data=spp,aes(x=PC1,y=PC2),label=row.names(spp))+
  geom_hline(yintercept=0,linetype=3,size=1)+ 
  geom_vline(xintercept=0,linetype=3,size=1)+
  labs(x=paste("PC1(", format(100 *oo$cont[[1]][2,1], digits=4), "%)", sep=""),
       y=paste("PC2(", format(100 *oo$cont[[1]][2,2], digits=4), "%)", sep=""))+
  guides(shape=guide_legend(title = NULL),fill=guide_legend(title = NULL))+
  theme_bw()+theme(panel.grid = element_blank())

在這裏插入圖片描述
 當樣方座標與物種座標數值相差較大時,爲了方便展示分析結果,我們可將樣方或者物種的座標數值擴大(或縮小),那麼上面的代碼就可達到這樣的效果。當然,有比較方便的ggvegan包,但對於要求高的朋友來說,本文的代碼將是更好的選擇。對於其他排序分析,如主座標分析、非度量多維尺度分析等分析,都可以用本文的思想來展現。對生態環境領域數據分析及繪圖感興趣的朋友,歡迎加QQ羣335774366,以便交流、學習。
聲明:以上代碼及觀點,僅供參考。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章