R语言【paleobioDB】——pbdb_richness():绘制指定类群的数量丰度

Package paleobioDB version 0.7.0

paleobioDB 包在2020年已经停止更新,该包依赖PBDB v1 API。

可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后,执行本地安装。


Usage

R 复制代码
pbdb_richness (data, rank, res, temporal_extent, colour, bord, do.plot)

Arguments

参数【data】:输入的数据,数据帧格式。可以通过 pbdb_occurrences() 函数 传参 **show = c("phylo", "ident")**获得数据。

参数【rank】:设置感兴趣的分类阶元。可选项包括:"species","genus","family","order","class" 和 "phylum"。默认值为 "species"

参数【temporal_extent】:设置时间范围,向量型(min,max)。

参数【res】:数值型。设置时间范围的时间段刻度。

参数【orig_ext】1 表示出现,2 表示灭绝。

参数【colour】:改变图中柱子的颜色。默认为 skyblue2

参数【bord】:设置图形边界的颜色。

参数【do.plot】TRUE /FALSE。默认为 TRUE


Value

返回一个数据帧和一个图像,展示了指定类群阶元在特定时间段内和分辨率上的丰富度变化。


Example

R 复制代码
library(paleobioDB)
library(RCurl)

options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))

data<-  pbdb_occurrences (limit="all", vocab="pbdb",
base_name="Canidae", show=c("phylo", "ident"))

pbdb_richness (data, rank="species", res=1, temporal_extent=c(0,3))
R 复制代码
  temporal_intervals richness
1                0-1       95
2                1-2       94
3                2-3       98

Page

R 复制代码
function (data, rank, res = 1, temporal_extent = c(0, 10), colour = "#0000FF30", 
    bord = "#0000FF", do.plot = TRUE) 
{
    temporal_range <- pbdb_temp_range(data = data, rank = rank, 
        do.plot = FALSE)
    te <- temporal_extent
    time <- seq(from = min(te), to = (max(te)), by = res)
    means <- NULL
    for (i in 1:length(time) - 1) {
        x <- (time[i + 1] + time[i])/2
        means <- c(means, x)
    }
    a <- NULL
    for (i in 1:(length(time) - 1)) {
        b <- temporal_range[, 1] > time[i] & temporal_range[, 
            2] <= time[i + 1]
        a <- cbind(a, b)
    }
    richness <- colSums(a + 0, na.rm = T)
    temporal_intervals <- paste(time[-length(time)], time[-1], 
        sep = "-")
    richness <- data.frame(temporal_intervals, richness)
    if (do.plot == TRUE) {
        plot.new()
        par(mar = c(5, 5, 1, 5), font.lab = 1, col.lab = "grey20", 
            col.axis = "grey50", cex.axis = 0.8)
        plot.window(xlim = c(max(te), min(te)), xaxs = "i", ylim = c(0, 
            (max(richness[, 2])) + (max(richness[, 2])/10)), 
            yaxs = "i")
        abline(v = seq(min(te), max(te), by = res), col = "grey90", 
            lwd = 1)
        abline(h = seq(0, max(richness[, 2]) + (max(richness[, 
            2])/10), by = (max(richness[, 2])/10)), col = "grey90", 
            lwd = 1)
        xx <- c(means[1], means, means[length(means)])
        yy <- c(0, richness[, 2], 0)
        polygon(xx, yy, col = colour, border = bord)
        axis(1, line = 1, las = 2, labels = temporal_intervals, 
            at = means)
        axis(2, line = 1, las = 1)
        mtext("Million years before present", line = 3.5, adj = 1, 
            side = 1)
        mtext("Richness", line = 3.5, adj = 0, side = 2)
    }
    return(richness)
}
相关推荐
就叫_这个吧4 小时前
Java递归方法实现面包屑导航
java·开发语言
fīɡЙtīиɡ ℡5 小时前
AI 应用系统设计
java·开发语言·人工智能
今天AI了吗6 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·数据库·人工智能·python·sql·深度学习·机器学习
TELL5217 小时前
selenium webdriver 第二次初始化的异常
开发语言·python
动词ing7 小时前
【C语言】自定义函数+指针入门
c语言·开发语言·算法
重生之后端学习7 小时前
283. 移动零[简单]✅
开发语言·数据结构·算法·leetcode·职场和发展
动词ing8 小时前
【C语言】结构体+文件基础
c语言·开发语言·数据结构
caimouse9 小时前
ReactOS 窗口系统分析(7):分层窗口与绘制辅助 — layered.c + draw.c
c语言·开发语言
丰锋ff9 小时前
基于 Qt 的智慧社区物业管理系统
开发语言·qt
夜不会漫长9 小时前
C++入门(1)
开发语言·c++·算法