||
有学员对于能够展示物种在样方多度分布的热图(如下图)很感兴趣(列为样方,行为物种,热图的颜色代表多度),但这个热图需要用到将原始多度数据转化为10以内正整数的等级数据。很多学员不知道怎么转化。其实,将原始多度数据转化等级数据并没有统一的模式,分割点设置具有主观性,如果要让每个等级的数量差不多,可以采用相等分位数进行转化。下面的案例以vegan包的varespec群落数据将原始多度数据转化0-5之间的整数等级数据,然后进行热图的制作。
首先加载包和数据
library(vegan) data(varespec)
下面的代码全部是以spe作为群落数据,所以读者自己的数据读进来直接赋值给spe即可
spe=varespec newdata=unlist(spe) n=5 #期望分为5个等级,可以自己定义等级bin=quantile(newdata[newdata>0],seq(1/n,1,1/n))
如果您不想用分位数进行分割,那就按你自己的想法对此向量进行重新定义切点,接下来的循环是不必变的。 将原始数据赋值给另外一个对象是为了下面做判断用,因为原始数据进行等级转化后就不再有判断功能。
foucus=spe
首先将原始数据大于0全部变为1,然后进行单向赋值。
spe[spe>0]=1for(i in 2:length(bin)){spe[foucus>bin[i-1]]=i}
查看每个等级的数据
table(unlist(spe))
## ## 0 1 2 3 4 5 ## 442 142 106 122 121 123
进行聚类和热图的制作
spe.ch <-vegdist(spe) spe.ch.ward <- hclust(spe.ch, method="ward.D")library(gclus) spe.chwo <- reorder.hclust(spe.ch.ward, spe.ch) dend <- as.dendrogram(spe.chwo) or <- vegemite(spe, spe.chwo)#要求物种数据是10以内整数
## ## 2222212111122111 1 ## 127859345630421095648372 ## Betupube 31..1................... ## Rhodtome 4444......1............. ## Barbhatc 4.2..11...1............. ## Polycomm 3.2.22.1................ ## Descflex 444421.............1..1. ## Hylosple ..551......4............ ## Cladbotr 3.11.11...111........... ## Vaccmyrt 5555.4.2443.....3....... ## Dicrsp 31.35...441453.......... ## Ptilcili 5121334.123.1.4.3.2.21.1 ## Peltapht ..1.1.4...1...3.....1... ## Pleuschr 455555555555555441145124 ## Dicrpoly 4..2.11.13.24.3331....1. ## Cetrisla 4..11..1121.23333..1.... ## Dicrfusc 354454455544.33343424441 ## Claddefo 42221444444443.333323221 ## Pinusylv 32.112122221344331211..1 ## Pohlnuta 3211.121121243333..1211. ## Polyjuni 3..2544331113.3334222.31 ## Cladfimb 322222233322.3.332323221 ## Cladcorn 124143442112233333223321 ## Empenigr 555455552545454542545455 ## Vaccviti 555555555555555554545555 ## Cladcris 321112444241133331323221 ## Cladunci 342143454445544333443342 ## Cladgrac 322122423333433.33323331 ## Cladarbu 454255555555445445555554 ## Cladrang 545445545555555545555555 ## Cladsp .11.1....111....3.111... ## Callvulg .5.....445512343..3441.1 ## Cladchlo 31...11...1.2..33.1..121 ## Cladcocc .2.122232221..333322222. ## Vacculig .4421......4.......1445. ## Nepharct ....5......1........122. ## Polypili .....11.1..1..3..21.1... ## Cladstel 534..5122151155554554535 ## Cetreric .1..1..422224..33243111. ## Stersp ...12344411.1.43.514434. ## Cladphyl .......1......333....... ## Icmaeric .......1.1.......2....1. ## Cladcerv ....1..............1...1 ## Flavniva .....11........34325223. ## Diphcomp ....1.....1.....3...443. ## Cladamau .................1..21.. ## 24 sites, 44 species
基于聚类树的双排列群落表格的热图
library(RColorBrewer) heatmap(t(spe[rev(or$species)]), Rowv=NA, Colv=dend, col=c("white", brewer.pal(5,"Greens")), scale="none", margin=c(3,5), ylab="Species (weighted averages of sites)", xlab="Sites")
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-19 13:37
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社