Phyloregion manual (2):arc_labels、beta_core 、choropleth
#方便自己回來復(fù)習(xí)的個(gè)人學(xué)習(xí)記錄,僅供參考,如有錯(cuò)誤,請多指正?
寫在前面:這一部分涉及樹圖的扇面化處理,樹圖進(jìn)化枝標(biāo)簽的添加,β多樣性中間步驟(大概)、choropleth映射圖的繪制(可視化重要步驟)
arc_labels? ?添加標(biāo)簽
描述:給系統(tǒng)發(fā)生樹的末枝類群加上標(biāo)簽
示例:
下面逐行解讀
old.par <- par(no.readonly = TRUE)
par是繪圖參數(shù)的設(shè)定,這一塊會(huì)對繪圖參數(shù)進(jìn)行修改,但是之后的內(nèi)容可能會(huì)收影響,所以這里先保存默認(rèn)參數(shù),便于這一塊結(jié)束時(shí)恢復(fù)。括號里的內(nèi)容解釋參考https://www.zhihu.com/question/54116933/answer/139940416
require(ape)
加載ape,ape為系統(tǒng)發(fā)育數(shù)據(jù)處理模塊
data(africa)
加載數(shù)據(jù)
par(mai=rep(0,4))
設(shè)置繪圖的邊框,mai=c( , , , )有4個(gè)數(shù)的向量對應(yīng)上下左右的寬度(英寸),rep(0,4)生成一個(gè)由0重復(fù)了4次得到的向量。
plot(africa$phylo, type = "fan", show.tip.label=FALSE,open.angle = 180, edge.width=0.5)
繪制扇形的樹圖。(數(shù)據(jù)phylo;類型扇形fan;不顯示枝末端標(biāo)簽;開角180°;邊寬0.5)

y <- data.frame(species=africa$phylo$tip.label)
將樹末端標(biāo)簽的信息及物種信息儲(chǔ)存在y中
y$genus <- gsub("_.*", "\\1", y$species)
gsub替換內(nèi)容,這里是將物種信息里第一個(gè)下?lián)Q線加上后面所有內(nèi)容都替換成"\\1",這是正則表達(dá)式,試了一下y$t<-?gsub("_.*", "", y$species)直接替換成空,效果一樣,這樣提取出屬的信息。

fx <- split(y, f=y$genus)
將屬信息分出來儲(chǔ)存在fx中
suppressWarnings(invisible(
忽略里面的反饋,因?yàn)槔锩嬗袀€(gè)判斷語句,會(huì)反饋邏輯判斷結(jié)果沖屏。
lapply(fx, function(x) {
大括號為function(x)的內(nèi)容,lapply將讓fx里的所有項(xiàng)目都運(yùn)行一遍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)
設(shè)置一個(gè)從1.03到1.09的等差數(shù)列,長度對應(yīng)fx。從里面隨機(jī)取值賦予z,作為后面標(biāo)簽的位置偏移值。
if(nrow(x) > 10L)?
nrow返回行數(shù),這里就代表了該屬的物種數(shù)目。這里做了個(gè)判斷,屬內(nèi)物種大于10的進(jìn)行之后上標(biāo)簽的操作,L意義不明,刪去似乎沒有影響。


arc_labels(phy = africa$phylo,tips=x$species,text=as.character(unique(x$genus)),orientation = "curved", cex=0.5,lab.offset = z)
添加標(biāo)簽。(數(shù)據(jù);要標(biāo)注的范圍;要標(biāo)注的標(biāo)簽(即屬的名稱);標(biāo)簽性狀(可以選擇?“vertical”, “horizontal”, ?“curved”);字大小0.5;標(biāo)簽位移z)

par(old.par)
恢復(fù)繪圖設(shè)置
beta_core? ?分類學(xué)β多樣性
beta_core(x) 返回一個(gè)可以被調(diào)用的對象
beta_diss(x, index.family = "sorensen")返回三個(gè)矩陣
示例:


這一模塊跟后面很多對應(yīng),說實(shí)話沒太弄懂這一步的目的,不過明晰進(jìn)去了什么出來了什么,應(yīng)該是中間步驟,到后面估計(jì)會(huì)詳細(xì)將解。
choropleth? 繪制映射地圖
復(fù)制粘貼:Choropleth貼圖提供了一種簡便的方法來可視化度量值在整個(gè)地理區(qū)域內(nèi)的變化或顯示區(qū)域內(nèi)的可變性水平。?熱圖或等距圖相似,但是不使用先驗(yàn)地理區(qū)域。 它們是主題地圖的最常見類型,因?yàn)橐寻l(fā)布的統(tǒng)計(jì)數(shù)據(jù)(來自政府或其他來源)通常匯總到知名的地理單位中,例如國家,州,省和縣,因此使用它們相對容易創(chuàng)建GIS?,?電子表格或其他軟件工具。
Choropleth將一個(gè)量的值離散用于映射。
示例:
library(sp)?
加載sp,sp是處理空間數(shù)據(jù)的模塊。
s <- readRDS(system.file("nigeria/SR_Naija.rds", package = "phyloregion"))?
system.file()返回文件的路徑
這個(gè)應(yīng)該是附有物種豐富度信息的尼日利亞地圖的一個(gè)柵格化空間數(shù)據(jù),是phyloregion包里帶的,那么這里存在一個(gè)問題,我要是想處理別的地方的數(shù)據(jù)的話,這個(gè)地圖數(shù)據(jù)的文件從哪里獲取。

readRDS()讀取這個(gè)地圖數(shù)據(jù),將其儲(chǔ)存在變量s里。
k <- 10?
COLOUR <- hcl.colors(k, "RdYlBu")
生成一個(gè)10種顏色組成的顏色梯度向量
y <- choropleth(s$SR, k)?
將物種豐富度離散化,離散化的箱數(shù)為10。
plot(s$SR, y)
繪制物種豐富度與顏色梯度的映射關(guān)系圖

plot(s, col = COLOUR[y])
繪制choropleth映射圖

這部分屬于可視化階段了,咋放這么前面,看了下目錄……按字母排列順序介紹,麻了