欢迎光临散文网 会员登陆 & 注册

Phyloregion manual (2):arc_labels、beta_core 、choropleth

2022-06-25 11:52 作者:猫腻需要更多的学习  | 我要投稿

#方便自己回来复习的个人学习记录,仅供参考,如有错误,请多指正 

写在前面:这一部分涉及树图的扇面化处理,树图进化枝标签的添加,β多样性中间步骤(大概)、choropleth映射图的绘制(可视化重要步骤)

arc_labels   添加标签

描述:给系统发生树的末枝类群加上标签

示例:

下面逐行解读

old.par <- par(no.readonly = TRUE)

par是绘图参数的设定,这一块会对绘图参数进行修改,但是之后的内容可能会收影响,所以这里先保存默认参数,便于这一块结束时恢复。括号里的内容解释参考https://www.zhihu.com/question/54116933/answer/139940416

require(ape)

加载ape,ape为系统发育数据处理模块

data(africa)

加载数据

par(mai=rep(0,4))

设置绘图的边框,mai=c( , , , )有4个数的向量对应上下左右的宽度(英寸),rep(0,4)生成一个由0重复了4次得到的向量。

plot(africa$phylo, type = "fan", show.tip.label=FALSE,open.angle = 180, edge.width=0.5)

绘制扇形的树图。(数据phylo;类型扇形fan;不显示枝末端标签;开角180°;边宽0.5)

y <- data.frame(species=africa$phylo$tip.label)

将树末端标签的信息及物种信息储存在y中

y$genus <- gsub("_.*", "\\1", y$species)

gsub替换内容,这里是将物种信息里第一个下换线加上后面所有内容都替换成"\\1",这是正则表达式,试了一下y$t<- gsub("_.*", "", y$species)直接替换成空,效果一样,这样提取出属的信息。

fx <- split(y, f=y$genus)

将属信息分出来储存在fx中

suppressWarnings(invisible(

忽略里面的反馈,因为里面有个判断语句,会反馈逻辑判断结果冲屏。

lapply(fx, function(x) {

大括号为function(x)的内容,lapply将让fx里的所有项目都运行一遍function(x)。

y <- seq(from = 1.03, to = 1.09, by = ((1.09 - 1.03)/(length(fx) - 1)))

z <- sample(y, 1, replace = FALSE, prob = NULL)

设置一个从1.03到1.09的等差数列,长度对应fx。从里面随机取值赋予z,作为后面标签的位置偏移值。

if(nrow(x) > 10L) 

nrow返回行数,这里就代表了该属的物种数目。这里做了个判断,属内物种大于10的进行之后上标签的操作,L意义不明,删去似乎没有影响。

arc_labels(phy = africa$phylo,tips=x$species,text=as.character(unique(x$genus)),orientation = "curved", cex=0.5,lab.offset = z)

添加标签。(数据;要标注的范围;要标注的标签(即属的名称);标签性状(可以选择 “vertical”, “horizontal”,  “curved”);字大小0.5;标签位移z)



par(old.par)

恢复绘图设置

beta_core   分类学β多样性

beta_core(x) 返回一个可以被调用的对象

beta_diss(x, index.family = "sorensen")返回三个矩阵

示例:

这一模块跟后面很多对应,说实话没太弄懂这一步的目的,不过明晰进去了什么出来了什么,应该是中间步骤,到后面估计会详细将解。

choropleth  绘制映射地图

复制粘贴:Choropleth贴图提供了一种简便的方法来可视化度量值在整个地理区域内的变化或显示区域内的可变性水平。 热图或等距图相似,但是不使用先验地理区域。 它们是主题地图的最常见类型,因为已发布的统计数据(来自政府或其他来源)通常汇总到知名的地理单位中,例如国家,州,省和县,因此使用它们相对容易创建GIS , 电子表格或其他软件工具。

Choropleth将一个量的值离散用于映射。

示例:

library(sp) 

加载sp,sp是处理空间数据的模块。

s <- readRDS(system.file("nigeria/SR_Naija.rds", package = "phyloregion")) 

system.file()返回文件的路径

这个应该是附有物种丰富度信息的尼日利亚地图的一个栅格化空间数据,是phyloregion包里带的,那么这里存在一个问题,我要是想处理别的地方的数据的话,这个地图数据的文件从哪里获取。

上面的应该是地图信息,下面这个应该是处理后得到的附加了SR信息的文件,获取文件的方式目前都不详

readRDS()读取这个地图数据,将其储存在变量s里。

k <- 10 

COLOUR <- hcl.colors(k, "RdYlBu")

生成一个10种颜色组成的颜色梯度向量

y <- choropleth(s$SR, k) 

将物种丰富度离散化,离散化的箱数为10。

plot(s$SR, y)

绘制物种丰富度与颜色梯度的映射关系图


plot(s, col = COLOUR[y])

绘制choropleth映射图


这部分属于可视化阶段了,咋放这么前面,看了下目录……按字母排列顺序介绍,麻了


Phyloregion manual (2):arc_labels、beta_core 、choropleth的评论 (共 条)

分享到微博请遵守国家法律