R语言【paleobioDB】——pbdb_orig_ext():绘制随着时间变化而出现的新类群
Package paleobioDB version 0.7.0
paleobioDB 包在2020年已经停止更新,该包依赖PBDB v1 API。
可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后,执行本地安装。
Usage
pbdb_orig_ext (data, rank,
temporal_extent, res, orig_ext,
colour="#0000FF30", bord="#0000FF", do.plot=TRUE)
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
library(paleobioDB)
library(RCurl)options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))canidae<- pbdb_occurrences (limit="all", vocab="pbdb",
+ base_name="Canidae", show=c("phylo", "ident"))
> pbdb_orig_ext (canidae, rank="genus", temporal_extent=c(0, 10),
+ res=1, orig_ext=1) new ext
1-2 to 0-1 2 2
2-3 to 1-2 0 0
3-4 to 2-3 3 2
4-5 to 3-4 8 6
5-6 to 4-5 3 4
6-7 to 5-6 5 0
7-8 to 6-7 0 0
8-9 to 7-8 0 0
9-10 to 8-9 0 0
> pbdb_orig_ext (canidae, rank="species", temporal_extent=c(0, 10),
+ res=1, orig_ext=2) new ext
1-2 to 0-1 7 14
2-3 to 1-2 10 14
3-4 to 2-3 39 13
4-5 to 3-4 24 16
5-6 to 4-5 14 9
6-7 to 5-6 21 0
7-8 to 6-7 0 0
8-9 to 7-8 1 0
9-10 to 8-9 2 0
Page
function (data, rank, temporal_extent, res, orig_ext = 1, colour = "#0000FF30", bord = "#0000FF", do.plot = TRUE)
{temporal_range <- pbdb_temp_range(data = data, rank = rank, do.plot = FALSE)te <- temporal_extentsequence <- seq(from = min(te), to = (max(te)), by = res)intv <- data.frame(min = sequence[1:length(sequence) - 1], max = sequence[2:length(sequence)])labels1 <- paste(intv[, 1], intv[, 2], sep = "-")labels2 <- paste(labels1[2:(length(labels1))], labels1[1:(length(labels1) - 1)], sep = " to ")res_sp <- list()for (i in 1:dim(intv)[1]) {intvv <- intv[i, ]cases1 <- which(as.numeric(temporal_range$min) >= intvv$min & as.numeric(temporal_range$min) <= intvv$max & as.numeric(temporal_range$max) >= intvv$max)cases2 <- which(as.numeric(temporal_range$min) <= intvv$min & as.numeric(temporal_range$max) <= intvv$max & as.numeric(temporal_range$max) >= intvv$min)cases3 <- which(as.numeric(temporal_range$min) <= intvv$min & as.numeric(temporal_range$max) >= intvv$max)cases <- unique(c(cases1, cases2, cases3))sps <- temporal_range[cases, ]res_sp[[i]] <- sps}change <- data.frame()for (i in length(res_sp):2) {new_taxa <- length(setdiff(row.names(res_sp[[i - 1]]), row.names(res_sp[[i]])))ext <- length(setdiff(row.names(res_sp[[i]]), row.names(res_sp[[i - 1]])))col <- c(new_taxa, ext)change <- rbind(change, col)}names(change) <- c("new", "ext")change <- change[rev(as.numeric(row.names(change))), ]row.names(change) <- labels2if (do.plot == TRUE) {ymx <- max(change[, orig_ext])ymn <- min(change[, orig_ext])xmx <- sequence[length(sequence) - 1]xmn <- sequence[2]plot.new()par(mar = c(5, 5, 2, 5), font.lab = 1, col.lab = "grey20", col.axis = "grey50", cex.axis = 0.8)plot.window(xlim = c(xmx, xmn), xaxs = "i", ylim = c(ymn, ymx), yaxs = "i")abline(v = seq(xmn, xmx, by = res), col = "grey90", lwd = 1)abline(h = seq(0, ymx, by = (ymx/10)), col = "grey90", lwd = 1)xx <- c(xmn, sequence[2:(length(sequence) - 1)], xmx)yy <- c(0, change[, orig_ext], 0)polygon(xx, yy, col = colour, border = bord)axis(1, line = 1, labels = labels2, at = xx[-c(1, length(xx))])axis(2, line = 1, las = 1)mtext("Million years before present", line = 3, adj = 1, side = 1)mtext(paste("Number of ", rank, sep = ""), line = 3, adj = 0, side = 2)title(ifelse(orig_ext == 1, "First appearences", "Last appearences"))}return(change)
}
相关文章:

R语言【paleobioDB】——pbdb_orig_ext():绘制随着时间变化而出现的新类群
Package paleobioDB version 0.7.0 paleobioDB 包在2020年已经停止更新,该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后,执行本地安装。 Usage pbdb_orig_ext (data, rank, temporal_extent…...
Vue模板的理解和使用
Vue模板 Vue.js 的模板是一种声明性的语法,用于将数据渲染进 DOM(文档对象模型)。它们使开发者能够以直观的方式声明式地描述用户界面应该如何根据应用程序数据的变化动态显示。 Vue模板的主要特点包括: 数据绑定: …...

mysql group_concat函数使用
CREATE TABLE aa (id int(11) DEFAULT NULL,name varchar(50) DEFAULT NULL ) ENGINEInnoDB DEFAULT CHARSETutf8mb41、基本查询 SELECT * FROM aa;2、以id分组,把name字段的值打印在一行,逗号分隔(默认) select id,group_concat(name) from aa group …...

并发编程之三大特性及JMM内存模型
目录 原子性 如何保证原子性 可见性 如何保证可见性 有序性 如何保证有序性 Java内存模型(JMM内存模型) Java内存模型的一些关键概念: 主内存与工作内存交互协议 Java内存模型通过以下手段来确保多线程程序的正确性: 锁机制 volatile volat…...
centos系统设置runlevel为5
在 CentOS 系统中,可以使用以下步骤将运行级别(runlevel)设置为 5: 1. 打开终端或 SSH 连接到 CentOS 服务器。 2. 以 root 用户身份登录。 3. 运行以下命令来编辑 /etc/inittab 文件: shell sudo vi /etc/inittab…...

关于群晖ARPL界面能出现ip但是使用Synology Assistant搜索不到ip问题 及解决方法
文章引用ing304 频道文章:https://qun.qq.com/qqweb/qunpro/share?_wv3&_wwv128&appChannelshare&inviteCode20jx8dPsU2z&contentID1m4NKs&businessType2&from181174&shareSource5&bizka 前言 当进入该界面后 提示IP无法访问&a…...
mysql Linux系统云服务器配置远程访问
mysql Linux系统云服务器配置远程访问 1.安装mysql 服务器 2.配置远程登录用户权限 3.进行远程登录,并访问数据库 1.安装mysql 服务器 首先先安装一下云服务器 sudo apt-get install mysql-server安装好之后,我们直接以root用户登录: …...

使用WAF防御网络上的隐蔽威胁之SQL注入攻击
SQL注入攻击是一种普遍存在且危害巨大的网络安全威胁,它允许攻击者通过执行恶意的SQL语句来操纵或破坏数据库。 这种攻击不仅能够读取敏感数据,还可能用于添加、修改或删除数据库中的记录。因此,了解SQL注入攻击的机制及其防御策略对于保护网…...

【书生·浦语】大模型实战营——第五次课程作业
基础作业——使用LMDeploy 以本地对话、网页Gradio、API服务中的一种方式部署InternLM-Chat-7B模型,生成300字的小故事 环境准备 除了安装所需依赖之后,重要的是进行模型转化(转换成TurboMind格式),这里需要注意转化命…...

Unity | 渡鸦避难所-7 | 攻击碰撞检测
1 前言 英雄的宝剑并非只是装饰物,利剑出鞘时可以对怪物造成伤害。同样,怪物挥出铁拳时也会对英雄造成伤害。当然,都有同样的前提:在武器碰到对方的情况下,才会造成伤害。利用物理引擎,可以轻松的实现碰撞…...

Linux Mii management/mdio子系统分析之一 总体概述
Linux Mii management/mdio子系统分析之一 总体概述 (转载)原文链接:https://blog.csdn.net/u014044624/article/details/123303099 从本章开始,我们介绍linux的mii management对应的mdio子模块,该模块主要用于管理phy…...

C语言:自定义类型——联合和枚举
一、联合体 1.1 联合体类型的声明 像结构体⼀样,联合体也是由⼀个或者多个成员构成,这些成员可以是不同的类型。 声明方式如下图: 那联合体和结构体究竟有什么区别呢?? 下面将重点讲解联合体的特点!&am…...

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -用户投票实现
锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…...
如何实现一个两栏布局,右侧自适应?三栏布局中间自适应?
要实现一个两栏布局,右侧自适应的效果,可以使用 CSS 的 Flexbox 或 Grid 布局来实现。以下是使用 Flexbox 实现的示例: HTML 结构: htmlCopy Code<div class"container"><div class"left-column"&…...

004 Golang-channel-practice 左右括号匹配
第四题 左右括号打印 一个协程负责打印“(”,一个协程负责打印“)”,左右括号的数量要匹配。在这道题目里,我在main函数里进行了一个死循环。会产生一个随机数,随机数就是接下来要打印的左括号的数量。 例…...

MS2351M/MS2351D:RF 检测器/控制器
产品简述 MS2351M/MS2351D 是一款对数放大器芯片,主要用于接收 信号强度指示 (RSSI) 与 控 制 功 率 放 大 器 , 工 作 频 率 范 围 是 0.05GHz 4.0GHz ,动态范围随信号频率不同可达 35dB 到 45dB 。 MS2351M/MS2351D 是电压响…...

vue中使用js-doc
安装依赖 安装vue-template-compiler npm install vue-template-compiler 安装minami npm install minami 安装js-doc npm install js-doc 根目录下创建 .jsdoc.conf.json 内容: {"tags": {"allowUnknownTags": true,// 指定所用词…...
Hive知识点
基本概念: 由Facebook开源,构建在Hadoop之上的数据仓库,数据计算是mapreduce,数据存储是HDFS 目的是构建面向分析的集成的数据环境,为企业提供决策支持 (面向分析的存储系统) 主要特征&…...
android自启动
Android 开机自动启动一个Service 附源码_watchdogservice-CSDN博客 执行 adb push 本地地址 目标地址 时遇到错误: adb: error: failed to copy app-release.apk to /system/app/app-release.apk: remote couldnt create file: Read-only file system 解决方案…...
cookie、Web Storage
前端知识汇编 1. cookie1.1 cookie的限制1.2 cookie的构成1.3 JavaScript中的cookie1.4 子cookie1.5 使用cookie的注意事项 2. Web Storage2.1 Storage类型2.2 sessionStorage对象2.3 localStorage对象2.4 存储事件2.5 限制 1. cookie cookie是客户端与服务器端进行会话时使用…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...