不知不覺,距離上一次記錄已經(jīng)過(guò)了半個(gè)月了~
不知這半月一頓的進(jìn)度可還行譬圣?今年能否完成flag呢诸衔?(時(shí)刻提醒自己立過(guò)一個(gè)flag!)
哈哈哈哈嗝帖渠,開始進(jìn)入正題了份招。
我的R的版本為4.0.0。
運(yùn)行第一步,更改工作路徑。在這之前把運(yùn)行的代碼和將要用到的函數(shù)和數(shù)據(jù)放到一個(gè)文件夾中會(huì)比較方便之后的操作(但非必要操作)砸西。
然后,加載安裝包”vegan”? ”leaflet”? ”GoogleVis”?”labdsv”以及函數(shù)”panelutils.R” 和數(shù)據(jù)”Doubs.Rdata”,操作完成后為右上角顯示理朋。
Doubs數(shù)據(jù)集中包含有5個(gè)數(shù)據(jù)框,spe為27種魚在每個(gè)樣方的多度绿聘;env為11個(gè)與河流的水文嗽上、地形和水體化學(xué)屬性相關(guān)的環(huán)境變量;spa為樣方的地理坐標(biāo)(笛卡爾坐標(biāo)系熄攘,X和Y)兽愤;latlong為取樣點(diǎn)的經(jīng)緯度坐標(biāo);fishtraits為描述魚的功能屬性的4種連續(xù)變量和6種二元變量。
這些操作皆為對(duì)數(shù)據(jù)框spe的查看,以及描述性統(tǒng)計(jì)。
所有物種混合在一起的多度分布柱狀圖。
這里作者采用的是每一副圖建立一張新的畫布的方式,以方便我們查看艰管。
Barplot函數(shù)即為繪制柱狀圖的函數(shù)耘擂,用 ?Barplot 可以查看更多參數(shù)。里面的參數(shù)可以根據(jù)自己的需求更改诞外,如col為柱子的顏色婴氮,這里選用的是灰度圖。
這里作者提出了一個(gè)思考:如何解讀為什么0值(缺失)在數(shù)據(jù)框內(nèi)頻率這么(0.5370)高?
根據(jù)數(shù)據(jù)框spa请毛,繪制出30個(gè)樣方沿著Doubs和的空間分布圖统翩。
先建立一張新的畫布,然后畫圖框纹磺,再根據(jù)笛卡爾坐標(biāo)繪制一條連接各樣方點(diǎn)的藍(lán)色線采转,添加樣方標(biāo)號(hào)。最后添加文本標(biāo)記上下游瞬痘。
然后提供了另一種樣方圖的繪制方法(用GoogleVis):
注意:因?yàn)閳D片是在瀏覽器中生成故慈,所以需要先將谷歌瀏覽器設(shè)置為默認(rèn)瀏覽器。
這段代碼是額外擴(kuò)展的图云,是用leaflet畫的動(dòng)態(tài)地圖(在Rstudio中顯示)惯悠。
nom <- latlong$Site
latlong2 <-paste(latlong$LatitudeN, latlong$LongitudeE, sep = ":")
df <-data.frame(latlong2, nom, stringsAsFactors = FALSE)
mymap1 <- gvisMap(df,
? locationvar = "latlong2",
? tipvar = "nom",
? options = list(showTip = TRUE)
)
plot(mymap1)
畫好地圖,現(xiàn)在展示4種魚類多度沿著Doubs河的分布情況竣况。
首先還是建立一張新的畫布,設(shè)置為(2,2)意思是在畫布中分布2? 2的4副圖片筒严。
魚類的多度由氣泡的大小呈現(xiàn)丹泉。
將物種在樣方中的出現(xiàn)頻率進(jìn)行可視化。
使用了apply函數(shù)鸭蛙,對(duì)表“spe”按列進(jìn)行計(jì)數(shù)摹恨,得到每個(gè)物種出現(xiàn)在多少個(gè)樣方中的數(shù)值。
這里使用的是spe>0判斷娶视,返回邏輯值為TRUE則計(jì)數(shù)晒哄。
升序重新排列結(jié)果,最后以柱狀圖的形式展現(xiàn)出來(lái)肪获。我們可以將柱狀圖的數(shù)值相加寝凌,可以得到物種總數(shù)剛好等于27個(gè)。
接下來(lái)畫樣方內(nèi)物種豐富度沿河流分布圖:
同樣的是使用apply函數(shù)孝赫,但這里統(tǒng)計(jì)的是樣方中出現(xiàn)的物種個(gè)數(shù)较木,所以需要按行計(jì)數(shù)。apply的第二個(gè)參數(shù)MARGIN設(shè)定為1青柄。注意設(shè)定為2時(shí)為按列計(jì)數(shù)伐债。
得到數(shù)據(jù)后预侯,進(jìn)行繪圖:樣方沿河流分布位置和所含物種豐富度。
生態(tài)數(shù)據(jù)轉(zhuǎn)化
分析數(shù)據(jù)前峰锁,經(jīng)常需要對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)化萎馅,主要目的有:①使不同物理單位的變量具有可變性;②使變量更符合正態(tài)分布虹蒋;③使非線性關(guān)系變成線性關(guān)系糜芳,等等。
這里主要要到的是vegan包中的decostand函數(shù)千诬。(耍目?decostand可以查看函數(shù)詳細(xì)參數(shù)介紹)
在可視化之前,對(duì)表spe中的數(shù)據(jù)進(jìn)行了轉(zhuǎn)化操作徐绑。注意使用繪圖函數(shù)或總結(jié)函數(shù)追蹤數(shù)據(jù)是否標(biāo)準(zhǔn)化正確邪驮。這里一般使用sum函數(shù)。
1傲茄、 簡(jiǎn)單轉(zhuǎn)化:spe.pa<- decostand(spe, method = "pa")
2毅访、除以該物種的最大值標(biāo)準(zhǔn)化:spe.scal <-decostand(spe, "max")
3、除以物種總和標(biāo)準(zhǔn)化盘榨,得到相對(duì)多度:spe.relsp <- decostand(spe, "total", MARGIN= 2)
4喻粹、除以樣方總和標(biāo)準(zhǔn)化多度,得到每個(gè)樣方物種相對(duì)多度:spe.rel <-decostand(spe, "total")
5草巡、弦轉(zhuǎn)化守呜,轉(zhuǎn)化后每一行數(shù)據(jù)的平方和等于1。spe.norm <-decostand(spe, "normalize")
驗(yàn)證之前先寫了個(gè)函數(shù):vec.norm <- function(x)sqrt(sum(x ^ 2))
6山憨、Hellinger轉(zhuǎn)化查乒,數(shù)據(jù)先開方后進(jìn)行弦轉(zhuǎn)化。spe.hel <-decostand(spe, "hellinger")
7郁竟、卡方轉(zhuǎn)化玛迄,spe.chi <-decostand(spe, "chi.square")
8、Wisconsin標(biāo)準(zhǔn)化棚亩,spe.wis <- wisconsin(spe)
多度數(shù)據(jù)轉(zhuǎn)化和標(biāo)準(zhǔn)化前后的數(shù)據(jù)分布范圍和分布情況。
部分環(huán)境數(shù)據(jù)的地圖:
總結(jié)讥蟆,簡(jiǎn)單轉(zhuǎn)化可以改善某些變量的數(shù)據(jù)分布(轉(zhuǎn)化后更加接近對(duì)稱或正態(tài)分布)勒虾。
PS,附代碼數(shù)據(jù)函數(shù)攻询。還有上述內(nèi)容Word文檔从撼。這里的圖片一點(diǎn)都不高清~
最好自己跑一遍!下次見!約定半個(gè)月吧低零。你可別胖了哦~
鏈接:https://pan.baidu.com/s/12IP3EHBCi3VeUJWPFIufQw
提取碼:okb0