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)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/627638.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简单整理FFmpeg相关命令集

FFmpeg相关命令集 简单整理了FFmpeg相关命令&#xff0c;主要包括ffplay播放控制和媒体播放命令、ffmpeg命令相关参数以及常用的提取音视频等命令。 &#x1f3a1;导航小助手&#x1f3a1; FFmpeg相关命令集1.ffmpeg命令分类查询2.ffplay命令2.1 ffplay播放控制2.2 ffplay命令…

数据绑定,defineProperty,v-on,事件处理

目录​​​​​​​ v-bind单向数据绑定 defineProperty 是v-on的简写 事件处理 v-bind单向数据绑定 从name绑定到v-bind到value单向数据绑定&#xff1a; <input type"text" :value"name"> <input type "text" v-model"na…

领导看了就给我升职加薪的年终总结,我只花5分钟就写完了!

年末正是做总结的时候&#xff0c;如果你正苦于年终总结不知道该如何下手&#xff0c;ProcessOn刚好上线了AI一键帮你生成年终总结的活动&#xff0c;还可以下载成PPT格式&#xff0c;或许可以助你一臂之力&#xff0c;操作起来十分简单。当然&#xff0c;计划也可以一键生成&a…

SpringBoot教程(三) | Spring Boot初体验

SpringBoot教程(三) | Spring Boot初体验 上篇文章我们创建了SpringBoot 项目&#xff0c;并且进行了简单的启动。整个项目了里其实我们就动了两个文件&#xff0c;一个是pom.xml负责管理springboot的相关依赖&#xff0c;一个是springBoot的启动类。 pom文件中通过starter的…

扫雷游戏【可展开一片,超详细,保姆级别,此一篇足够】

一、C语言代码实现的扫雷游戏的运行 C语言实现扫雷 二、扫雷游戏的分析与设计 1.扫雷游戏的界面设计 在玩家玩扫雷的时候&#xff0c;它会给你一个二维的棋盘&#xff08;下面的讲解都以9x9规格为例子&#xff09;&#xff0c;然后点击你想排查的坐标&#xff0c;若不是雷的&…

【Linux】第二十九站:再谈进程地址空间

文章目录 一、一些疑问二、程序没有加载前的地址&#xff08;程序)三、程序加载后的地址四、动态库的地址 一、一些疑问 什么是虚拟地址&#xff1f;什么是物理地址&#xff1f;CPU读到的指令里面用的地址&#xff0c;是什么地址&#xff1f;&#xff1f; 我们之前在使用动态…

记录汇川:H5U与Factory IO测试14

现实53工位的物料运输。 设置了自动连续存启动&#xff1a;就是一个一个运&#xff0c;按照顺序将空的货架填满。 设置了自动连续存停止&#xff1a;就是完成当前循环后退出。 设置了自动连续取启动&#xff1a;就是一个一个运&#xff0c;按照顺序将有货的货架清空。 设置…

如何在Docker中搭建MinIO容器并实现无公网ip远程访问本地服务

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器&#xff0c;可以在各种环境中运行&#xff0c;例如本地、Docker容器、Kubernetes集群等。它兼…

Android Studio安装超详细步骤(包括SDK安装不成功,模拟器无法创建等问题)

本文主要介绍CPU为AMD锐龙和英特尔两种类型在安装中出现的一些问题&#xff0c;两种解决的方案不同&#xff0c;所以首先查看属于哪种&#xff0c;然后找相对应的安装方法。 Android Studio的安装需要准备两个安装文件&#xff0c;一个是java JDK ,一个是Android Studio均可在官…

kubesphere DevOps部署SpringCloud项目

&#x1f34e;devops部署SpringCloud项目 &#x1f345;环境说明&#x1f345;部署流程&#x1f9c1;创建DevOps工程&#x1f9c1;填写流水线信息&#x1f9c1;创建流水线 &#x1f345;部署应用所需脚本&#x1f9c1;jenkinsfile&#x1f9c1;Dockerfile&#x1f9c1;deploy.y…

如何才能把图片无损放大?这几个无损放大的方法分享给你们

在互联网的浩瀚海洋里&#xff0c;我们常常迷失在繁星般的图片之中&#xff0c;寻找那一款能映照出我们内心的头像。无论是渴望在社交媒体上熠熠生辉&#xff0c;还是在游戏世界中塑造独一无二的形象&#xff0c;一个与我们心灵相通的头像总能带给我们难以言喻的喜悦与满足。然…

【动态规划】【滑动窗口】【C++算法】 629K 个逆序对数组

作者推荐 【矩阵快速幂】封装类及测试用例及样例 本文涉及知识点 动态规划 C算法&#xff1a;滑动窗口总结 LeetCode629: K 个逆序对数组 逆序对的定义如下&#xff1a;对于数组 nums 的第 i 个和第 j 个元素&#xff0c;如果满足 0 < i < j < nums.length 且 nu…

0、C++预备知识

文章目录 C与C语言为什么要学习CC为什么难学c值得学习的新特征C参考书籍开发工具 可移植性和标准程序创建的技巧编译和链接 C与C语言 C是一种计算机高级程序设计语言&#xff0c;C既可以进行C语言的过程化程序设计&#xff0c;又可以进行以抽象数据类型为特点的基于对象的程序…

蓝莓产量预测(R语言版)

数据描述 字段名 描述 字段名 描述 id 蓝莓唯一标识 MinOfUpperTRange 花期内最高温带日平均气温的最低记录, Clonesize 蓝莓克隆平均大小 AverageOfUpperTRange 花期内最高温带日平均气温, Honeybee 蜜蜂密度 MaxOfLowerTRange 花期内最低温带日平均气温的最…

linux高级篇基础理论十二( 自动化运维工具Ansible )

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xff1a;云计算技…

vue-quill-editor 图片放大缩小 及富文本解析 放大图片预览

接上回 巴阿这是上一篇博客的标题 《vue vue-quill-editor 富文本编辑器 &#xff08;图片问题&#xff09;拦截粘贴动作 将粘贴的图片上传服务器 一个页面渲染多个富文本编辑器&#xff08;使用场景循环遍历 个数不定&#xff09;》 上篇传送门 需求1.编辑框里图片可放大缩…

什么是DNS(域名系统)

域名系统&#xff08;DNS&#xff09;像是互联网的电话簿&#xff0c;将人们容易记住的网址转换成计算机能理解的IP地址。 没有DNS&#xff0c;我们就需要记住复杂的数字序列来访问网站 DNS的基本概念 定义&#xff1a;DNS是一个分布式数据库&#xff0c;它将域名&#xff08…

阿里云服务器ECS性能与优势,为什么国内第一云?

为什么选择阿里云&#xff1f;阿里云服务器有哪些优势&#xff1f;阿里云全球第三&#xff0c;国内第一云&#xff0c;阿里云服务器网aliyunfuwuqi.com分享云服务器ECS在丰富ECS实例架构、弹性灵活、稳定可靠、便捷易用、安全保障和成本优化多方面优势&#xff1a; 阿里云服务…

BSP-D2000平台调试CM9434串口芯片

1.硬件原理图 原理图显示两块9434的INT分别接到D2000的GPIO0_A3和GPIO0_A5. 2.配置 2.1 设备树 gpio <&pio 1 1 1 1 1 0>;| | | | | | | || | | | | | | ------表示有效电平| | | | | | | | | …

走迷宫之推箱子

前言&#xff1a; 在上一篇文章当中我介绍了一个走迷宫的写法&#xff0c;但是那个迷宫没什么可玩性和趣味性&#xff0c;所以我打算在迷宫的基础上加上一个推箱子&#xff0c;使之有更好的操作空间&#xff0c;从而增强了游戏的可玩性和趣味性。 1. 打印菜单 void menu() {…