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

2024-07-02 16:20:37 浏览数 (2)

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

代码语言:javascript复制
result$p.values

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

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

代码语言:javascript复制
result$reps.overlap

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

这个是作图用到的数据

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

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

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

代码语言:javascript复制
result$d.plot
result$i.plot

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

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

帮助文档中的代码

代码语言:javascript复制
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")

读取数据作图

代码语言:javascript复制
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

欢迎大家关注我的公众号

小明的数据分析笔记本

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

0 人点赞