不知不觉,距离上一次记录已经过了半个月了~
不知这半月一顿的进度可还行?今年能否完成flag呢?(时刻提醒自己立过一个flag!)
哈哈哈哈嗝,开始进入正题了。
我的R的版本为4.0.0。
运行第一步,更改工作路径。在这之前把运行的代码和将要用到的函数和数据放到一个文件夹中会比较方便之后的操作(但非必要操作)。
然后,加载安装包”vegan” ”leaflet” ”GoogleVis” ”labdsv”以及函数”panelutils.R” 和数据”Doubs.Rdata”,操作完成后为右上角显示。
Doubs数据集中包含有5个数据框,spe为27种鱼在每个样方的多度;env为11个与河流的水文、地形和水体化学属性相关的环境变量;spa为样方的地理坐标(笛卡尔坐标系,X和Y);latlong为取样点的经纬度坐标;fishtraits为描述鱼的功能属性的4种连续变量和6种二元变量。
这些操作皆为对数据框spe的查看,以及描述性统计。
所有物种混合在一起的多度分布柱状图。
这里作者采用的是每一副图建立一张新的画布的方式,以方便我们查看。
Barplot函数即为绘制柱状图的函数,用 ?Barplot 可以查看更多参数。里面的参数可以根据自己的需求更改,如col为柱子的颜色,这里选用的是灰度图。
这里作者提出了一个思考:如何解读为什么0值(缺失)在数据框内频率这么(0.5370)高?
根据数据框spa,绘制出30个样方沿着Doubs和的空间分布图。
先建立一张新的画布,然后画图框,再根据笛卡尔坐标绘制一条连接各样方点的蓝色线,添加样方标号。最后添加文本标记上下游。
然后提供了另一种样方图的绘制方法(用GoogleVis):
注意:因为图片是在浏览器中生成,所以需要先将谷歌浏览器设置为默认浏览器。
这段代码是额外扩展的,是用leaflet画的动态地图(在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)
画好地图,现在展示4种鱼类多度沿着Doubs河的分布情况。
首先还是建立一张新的画布,设置为(2,2)意思是在画布中分布2ˣ 2的4副图片。
鱼类的多度由气泡的大小呈现。
将物种在样方中的出现频率进行可视化。
使用了apply函数,对表“spe”按列进行计数,得到每个物种出现在多少个样方中的数值。
这里使用的是spe>0判断,返回逻辑值为TRUE则计数。
升序重新排列结果,最后以柱状图的形式展现出来。我们可以将柱状图的数值相加,可以得到物种总数刚好等于27个。
接下来画样方内物种丰富度沿河流分布图:
同样的是使用apply函数,但这里统计的是样方中出现的物种个数,所以需要按行计数。apply的第二个参数MARGIN设定为1。注意设定为2时为按列计数。
得到数据后,进行绘图:样方沿河流分布位置和所含物种丰富度。
生态数据转化
分析数据前,经常需要对数据进行转化,主要目的有:①使不同物理单位的变量具有可变性;②使变量更符合正态分布;③使非线性关系变成线性关系,等等。
这里主要要到的是vegan包中的decostand函数。(?decostand可以查看函数详细参数介绍)
在可视化之前,对表spe中的数据进行了转化操作。注意使用绘图函数或总结函数追踪数据是否标准化正确。这里一般使用sum函数。
1、 简单转化:spe.pa<- decostand(spe, method = "pa")
2、除以该物种的最大值标准化:spe.scal <-decostand(spe, "max")
3、除以物种总和标准化,得到相对多度:spe.relsp <- decostand(spe, "total", MARGIN= 2)
4、除以样方总和标准化多度,得到每个样方物种相对多度:spe.rel <-decostand(spe, "total")
5、弦转化,转化后每一行数据的平方和等于1。spe.norm <-decostand(spe, "normalize")
验证之前先写了个函数:vec.norm <- function(x)sqrt(sum(x ^ 2))
6、Hellinger转化,数据先开方后进行弦转化。spe.hel <-decostand(spe, "hellinger")
7、卡方转化,spe.chi <-decostand(spe, "chi.square")
8、Wisconsin标准化,spe.wis <- wisconsin(spe)
多度数据转化和标准化前后的数据分布范围和分布情况。
部分环境数据的地图:
总结,简单转化可以改善某些变量的数据分布(转化后更加接近对称或正态分布)。
PS,附代码数据函数。还有上述内容Word文档。这里的图片一点都不高清~
最好自己跑一遍!下次见!约定半个月吧。你可别胖了哦~
链接:https://pan.baidu.com/s/12IP3EHBCi3VeUJWPFIufQw
提取码:okb0