R语言做生态位分化分析(4)结果保存到本地自己作图

R语言 R语言 526 人阅读 | 0 人回复 | 2024-06-24

这个生态位分化分析整个的运行过程时间还是挺长的,所以想写个脚本直接在服务器上提交一个任务,最开始是想直接用save函数把运行结果保存下来。但是这个结果非常大,保存到本地以后有60多个G(暂时还没太搞懂这个数据里都有什么)。最后能用到的结果是

result$p.values

result$p.values%>%as.data.frame()%>%rownames_to_column()

这个是 p 值,可以转换为数据框保存

result$reps.overlap

result$reps.overlap %>% 
  rownames_to_column() %>% 
  write_tsv("reps.overlap.tsv")

这个是作图用到的数据

image.png

第一行是 结果图垂直虚线的位置

单独把这个数据保存成一个数据框然后输出应该就可以了,图用这个数据来做

其余的行是频率分布直方图的数据

result$d.plot
result$i.plot

这两个是可能会用到的结果图,暂时没有想明白单独保存图文件也会非常大,不知道为啥

下面运行一下这个R中的帮助文档,保存数据然后自己作图

帮助文档中的代码

library(ENMTools)
library(tidyverse)

cyreni <- iberolacerta.clade$species$cyreni
monticola <- iberolacerta.clade$species$monticola
cyreni$range <- background.raster.buffer(cyreni$presence.points, 100000, euro.worldclim)
monticola$range <- background.raster.buffer(monticola$presence.points, 100000, euro.worldclim)
identity.test(cyreni, monticola, env = euro.worldclim, type = "glm",
              f = pres ~ bio1 + bio12, nreps = 100) -> result

result$reps.overlap %>% 
  rownames_to_column() %>% 
  write_tsv("reps.overlap.tsv")

读取数据作图

read_tsv("reps.overlap.tsv") %>% 
  filter(rowname != "empirical") -> dat

p1<-ggplot(data=dat,aes(x=D))+
  geom_histogram(color="grey",fill="#009f73")+
  geom_vline(xintercept = 0.471,lty="dashed")+
  theme_bw(base_size = 15)+
  theme(panel.grid = element_blank())+
  annotate(geom = "text",x=0.6,y=50,label="P=0.0099",size=10)


p2<-ggplot(data=dat,aes(x=I))+
  geom_histogram(color="grey",fill="#0072b1")+
  geom_vline(xintercept = 0.471,lty="dashed")+
  theme_bw(base_size = 15)+
  theme(panel.grid = element_blank())+
  annotate(geom = "text",x=0.6,y=50,label="P=0.0099",size=10)

library(patchwork)
p1+p2

image.png

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

微信扫一扫分享文章

+10
无需登陆也可“点赞”支持作者
分享到:
评论

使用道具 举报

热门推荐