Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >跟着Nature Plants学作图:R语言ggplot2画分组折线图和置信区间

跟着Nature Plants学作图:R语言ggplot2画分组折线图和置信区间

作者头像
用户7010445
发布于 2022-05-23 07:58:14
发布于 2022-05-23 07:58:14
1.5K00
代码可运行
举报
运行总次数:0
代码可运行

论文

The flying spider-monkey tree fern genome provides insights into fern evolution and arborescence

https://www.nature.com/articles/s41477-022-01146-6#Sec44

数据下载链接

https://doi.org/10.6084/m9.figshare.19125641

今天的推文重复一下论文中的Figure1d中左下角的小图

image.png

论文中提供的原始数据集如下

image.png

需要将其整理成3个单独的数据集

image.png

首先是做数据整理的代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(readxl)
library(ggplot2)
library(tidyverse)

dat01<-read_excel("data/20220518/dat01.xlsx")
dat01

dat01 %>% 
  mutate(x=8:2,
         mean_value=`Duplication Per`,
         lower95=`Duplication Per`,
         upper95=`Duplication Per`,
         group="Experimental") %>% 
  select(x,mean_value,lower95,upper95,group)-> dat01

dat02<-read_excel("data/20220518/dat02.xlsx")
head(dat02)
dat02 %>% 
  group_by(MRCA) %>% 
  summarise(mean_value = mean(`Duplication Per`),
            lower95 = Rmisc::CI(`Duplication Per`)[3],
            upper95 = Rmisc::CI(`Duplication Per`)[1]) %>% 
  mutate(x=8:2,
         group="Null simulation") %>% 
  select(x,mean_value,lower95,upper95,group) -> dat02

dat03<-read_excel("data/20220518/dat03.xlsx")
head(dat03)
dat03 %>% 
  group_by(MRCA) %>% 
  summarise(mean_value = mean(`Duplication Per`),
            lower95 = Rmisc::CI(`Duplication Per`)[3],
            upper95 = Rmisc::CI(`Duplication Per`)[1]) %>% 
  mutate(x=8:2,
         group="Positive simulation") %>% 
  select(x,mean_value,lower95,upper95,group) -> dat03

dat<-bind_rows(dat01,dat02,dat03)
dat %>% 
  mutate(group=fct_rev(group)) -> dat

作图代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ggplot(data = dat,aes(x=x,y=mean_value))+
  geom_line(aes(color=group),size=1.5)+
  geom_ribbon(aes(ymin=lower95-1,ymax=upper95+1,
                  fill=group),
              alpha=0.5,
              show.legend = FALSE)+
  theme_minimal()+
  theme(panel.grid = element_blank(),
        axis.line = element_line(),
        axis.ticks = element_line(),
        legend.title = element_blank())+
  scale_x_continuous(breaks = 2:8,
                     labels = paste0("N",8:2))+
  scale_y_continuous(breaks = c(0,25))+
  labs(x="Subtree node",y="Percent subtree")

最终结果

image.png

这里最终的结果和论文中的图还是有些差异的,因为我没有看到论文中用的是置信区间作为数据范围还是其他,我这里选择的是置信区间,然后对数值进行了加减1

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Scrapy框架之批量下载360妹纸图
0.导语1.项目初始化2.定义存储结构3.Spider核心代码4.pipeline下载及存储5.json知识
公众号guangcity
2019/09/20
6000
Scrapy框架之批量下载360妹纸图
Scrapy框架的使用之Item Pipeline的用法
Item Pipeline是项目管道,本节我们详细了解它的用法。 首先我们看看Item Pipeline在Scrapy中的架构,如下图所示。 图中的最左侧即为Item Pipeline,它的调用发生
崔庆才
2018/06/25
7.4K1
data pipeline是做什么_pycharm创建爬虫项目
爬取爱套图网图片:https://github.com/EExplode/scrapy_aitaotu
全栈程序员站长
2022/10/05
4850
Scrapy框架的使用之Scrapy对接Selenium
Scrapy抓取页面的方式和requests库类似,都是直接模拟HTTP请求,而Scrapy也不能抓取JavaScript动态渲染的页面。在前文中抓取JavaScript渲染的页面有两种方式。一种是分析Ajax请求,找到其对应的接口抓取,Scrapy同样可以用此种方式抓取。另一种是直接用Selenium或Splash模拟浏览器进行抓取,我们不需要关心页面后台发生的请求,也不需要分析渲染过程,只需要关心页面最终结果即可,可见即可爬。那么,如果Scrapy可以对接Selenium,那Scrapy就可以处理任何
崔庆才
2018/06/25
2.7K0
Scrapy 框架实战:构建高效的快看漫画分布式爬虫
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,它提供了强大的数据提取能力、灵活的扩展机制以及高效的异步处理性能。其核心架构包括:
小白学大数据
2025/08/28
700
Scrapy 对接 Selenium
Scrapy抓取页面的方式和Requests库类似,都是直接模拟HTTP请求,因此如果遇到JavaScript渲染的页面Scrapy同样是无法抓取的,而在前文中我们抓取JavaScript渲染的页面有
崔庆才
2017/08/08
6.6K0
Scrapy 对接 Selenium
利用 Scrapy 爬取知乎用户信息
  思路:通过获取知乎某个大V的关注列表和被关注列表,查看该大V和其关注用户和被关注用户的详细信息,然后通过层层递归调用,实现获取关注用户和被关注用户的关注列表和被关注列表,最终实现获取大量用户信息。 一、新建一个scrapy项目   scrapy startproject zhihuuser   移动到新建目录下: cd zhihuuser   新建spider项目: scrapy genspider zhihu zhihu.com 二、这里以爬取知乎大V轮子哥的用户信息来实现爬取知乎大量用户信息。 a)
希希里之海
2018/05/16
6980
Scrapy框架之爬取城市天气预报
1.项目初始化2.提取数据 2.1 原理分析 2.2 数据抽取 2.3 自定义spider3.存储数据 3.1 修改settings.py 3.2 数据存储4.结果展示5.作者的话
公众号guangcity
2019/09/20
1.8K1
Scrapy框架之爬取城市天气预报
Python(十六)
接下来的几篇,我们将介绍一下最流行的爬虫框架 Scrapy。本篇,我们会介绍一下 Scrapy 的基本使用。
1ess
2021/11/01
3720
Python(十六)
手把手教你用Scrapy爬取知乎大V粉丝列表
导读:通过获取知乎某个大V的关注列表和被关注列表,查看该大V以及其关注用户和被关注用户的详细信息,然后通过层层递归调用,实现获取关注用户和被关注用户的关注列表和被关注列表,最终实现获取大量用户信息。
IT阅读排行榜
2021/05/06
9770
一个scrapy框架的爬虫(爬取京东图书)
我们的这个爬虫设计来爬取京东图书(jd.com)。 scrapy框架相信大家比较了解了。里面有很多复杂的机制,超出本文的范围。 1、爬虫spider tips: 1、xpath的语法比较坑,但是你可以在chrome上装一个xpath helper,轻松帮你搞定xpath正则表达式 2、动态内容,比如价格等是不能爬取到的 3、如本代码中,评论爬取部分代码涉及xpath对象的链式调用,可以参考 # -*- coding: utf-8 -*- # import scrapy # 可以用这句代替下面三句,但不推荐
用户1225216
2018/03/05
1.4K0
17.splash_case06_ScrapySplashTest-master
taobao.py # -*- coding: utf-8 -*- from scrapy import Spider, Request from urllib.parse import quote from scrapysplashtest.items import ProductItem from scrapy_splash import SplashRequest script = """ function main(splash, args) splash.images_enabled = f
hankleo
2020/09/17
4280
Python爬虫案例:Scrapy+XPath解析当当网网页结构
在当今大数据时代,网络爬虫已成为获取互联网信息的重要工具。作为Python生态中最强大的爬虫框架之一,Scrapy凭借其高性能、易扩展的特性受到开发者广泛青睐。本文将详细介绍如何利用Scrapy框架结合XPath技术解析当当网的商品页面结构,实现一个完整的电商数据爬取案例。
小白学大数据
2025/07/24
1220
分布式爬虫搭建系列 之三---scrapy框架初用
其次,通过我们的神器PyCharm打开我们的项目--crawlquote(也可以将PyCharm打开我们使用虚拟环境创建的项目)
wfaceboss
2019/04/08
6370
分布式爬虫搭建系列 之三---scrapy框架初用
Python爬虫框架:scrapy爬取知乎数据
基础环境沿用之前的环境,只是增加了MongoDB(非关系型数据库)和PyMongo(Python 的 MongoDB 连接库),默认我认为大家都已经安装好并启动 了MongoDB 服务。
python学习教程
2019/10/22
1.6K0
Python爬虫框架:scrapy爬取知乎数据
Scrapy框架的使用之Scrapy入门
接下来介绍一个简单的项目,完成一遍Scrapy抓取流程。通过这个过程,我们可以对Scrapy的基本用法和原理有大体了解。 一、准备工作 本节要完成的任务如下。 创建一个Scrapy项目。 创建一个Spider来抓取站点和处理数据。 通过命令行将抓取的内容导出。 将抓取的内容保存的到MongoDB数据库。 二、准备工作 我们需要安装好Scrapy框架、MongoDB和PyMongo库。 三、创建项目 创建一个Scrapy项目,项目文件可以直接用scrapy命令生成,命令如下所示: scrapy st
崔庆才
2018/06/25
1.5K0
scrapy 进阶使用
乐百川
2018/01/09
2.1K0
scrapy 进阶使用
实操 | 从0到1教你用Python来爬取整站天气网
Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。
润森
2019/09/17
8000
实操 | 从0到1教你用Python来爬取整站天气网
Scrapy项目实战:爬取某社区用户详情
get_cookies.py from selenium import webdriver from pymongo import MongoClient from scrapy.crawler import overridden_settings # from segmentfault import settings import time import settings class GetCookies(object): def __init__(self): # 初始化组件
hankleo
2020/09/17
6230
起点小说爬取--scrapy/redis/scrapyd
之前写了一篇网络字体反爬之pyspider爬取起点中文小说 可能有人看了感觉讲的太模糊了,基本上就是一笔带过,一点也不详细。这里要说明一下,上一篇主要是因为有字体反爬,所以我才写了那篇文章,所以主要就是提一个字体反爬的概念让大家知道,其中并没有涉及到其他比较难的知识点,所以就是大概介绍一下。
星星在线
2018/08/21
1.9K0
起点小说爬取--scrapy/redis/scrapyd
相关推荐
Scrapy框架之批量下载360妹纸图
更多 >
交个朋友
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
加入[游戏服务器] 腾讯云官方交流站
游戏服运维小技巧 常见问题齐排查
加入架构与运维学习入门群
系统架构设计入门 运维体系构建指南
换一批
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验