R统计绘图 | 物种组成冲积图(绝对/相对丰度,ggalluvial)

news2024/9/25 11:16:45

一、数据准备

数据使用的不同处理土壤样品的微生物组成数据,包含物种丰度,分类单元和样本分组数据。此数据为虚构,可用于练习,请不要作他用。

# 1.1 设置工作路径
#knitr::opts_knit$set(root.dir="D:\\EnvStat\\PCA")# 使用Rmarkdown进行程序运行
Sys.setlocale('LC_ALL','C') # Rmarkdown全局设置
#options(stringsAsFactors=F)# R中环境变量设置,防止字符型变量转换为因子
setwd("D:\\EnvStat\\alluvial_map")

# 1.2 读入数据
## 物种组成数据
spetax <- read.table("spetax.csv", header=T, row.names=1, sep=",", comment.char="",stringsAsFactors = TRUE,quote = "")
head(spetax)

## 将物种分类单元注释信息与丰度数据分开
spe <- spetax[-c(1:7)]
tax <- spetax[1:7]
head(spe)
head(tax)

## 样本分组数据
group <- read.table("group.csv", header=T, row.names=1, sep=",", comment.char="",stringsAsFactors = TRUE,quote = "")
group$grazing <- factor(group$grazing,levels = c("CK","LG","MG","HG"))
group

图1|物种丰度及分类单元注释信息,spetax.csv。

图2|样本分组信息,group.csv。

二、 物种组成冲积图

使用ggalluvial包在门水平绘制物种组成冲积图,可以绘制绝对丰度冲积图,也可以使用相对丰度绘制冲积图。

2.1 绝对丰度物种组成冲积图

# 2.1.1 物种组成数据按照门进行汇总
## spe和tax数据表中物种排序一致
library(tidyverse)
phy <- spe %>%
  group_by(tax$Phylum) %>% # 使用tax中的门水平进行分类
  summarise_all(sum) %>%
  rename(Phylum = `tax$Phylum`) %>%
  gather(key="Samples",value = "abun",-Phylum) %>% # 数据形式转换:“宽”转“长”
  left_join(group,by=c("Samples"="name")) %>%
  select(grazing,depth,Phylum,abun) %>%
  group_by(grazing,depth,Phylum) %>% # 求均值
  summarise_all(mean)
  
dim(phy)
head(phy)

# 2.1.2 颜色
library(ggsci)
col=pal_d3("category20")(20)
col2 = pal_d3("category20",alpha = 0.5)(20)
mypal=c(col,col2[-8])

图3|按门汇总的各处理物种丰度均值数据,phy。long format数据形式可直接用于ggplot2绘图。

# 2.1.3  物种组成冲积图-绝对丰度
abs_allu <- ggplot(data = phy,
       aes(x = depth, y = abun, fill = reorder(Phylum,-abun), 
           stratum = reorder(Phylum,-abun),
           alluvium = reorder(Phylum,-abun))) +
  geom_alluvium()+
    geom_stratum(width=0.45, size=0.1) +
   geom_bar(aes(fill = reorder(Phylum,-abun)),stat='identity', width=0.45) +
  scale_y_continuous(expand=c(0, 0))+
  theme_bw() +
  facet_grid( ~ grazing,scales = "fixed")+
  scale_fill_manual(values = mypal,name="Phylum") +
  scale_color_manual(values = mypal) +
  theme(legend.position = "top",
        panel.grid=element_blank(),
        panel.spacing.x = unit(0,units = "cm"),
        strip.background = element_rect(
     color="white", fill="white", 
     linetype="solid",size=0.8),
     strip.placement = "outside",
     axis.line.y.left = element_line(color="black",size=0.8),
     axis.line.x.bottom = element_line(color="black",size=0.8),
     strip.text.x = element_text(size = 14,face = "bold"),
     axis.text = element_text(face = "bold", 
                                 size = 12,color="black"),
     axis.title = element_text(face = "bold", 
                                  size = 14,colour = "black"),
      legend.title = element_text(face = "bold", 
                                   size =12,color="black"),
    legend.text = element_text(face = "bold", size =12,color="black"),
    axis.ticks.x = element_blank(),
    axis.ticks.y = element_line(size = 0.3),
     
        )+
   labs(x = "Depth",y= "Relative Abundance of Phylum (%)")
abs_allu

ggsave("abs_allu.pdf",abs_allu,device = "pdf",width = 12,height = 8,family="Times")

图4|绝对丰度冲积图,abs_allu.pdf。

2.2 相对丰度物种组成冲积图

# 2.2.1 需要先计算相对丰度
rel_spe <- sweep(spe,2,colSums(spe),'/')*100
head(rel_spe)

# 2.2.2 物种组成数据按照门进行汇总  
## spe和tax数据表中物种排序一致
rel_phy <- rel_spe %>%
  group_by(tax$Phylum) %>% # 使用tax中的门水平进行分类
  summarise_all(sum) %>%
  rename(Phylum = `tax$Phylum`) %>%
  gather(key="Samples",value = "abun",-Phylum) %>% # 数据形式转换:“宽”转“长”
  left_join(group,by=c("Samples"="name")) %>%
  select(grazing,depth,Phylum,abun) %>%
  group_by(grazing,depth,Phylum) %>% # 求均值
  summarise_all(mean)
dim(rel_phy)
head(rel_phy)

图5|按门汇总的各处理物种相对丰度数据,rel_phy。

# 2.2.3  物种组成冲积图-相对丰度
rel_allu <- ggplot(data = rel_phy,
       aes(x = depth, y = abun, fill = reorder(Phylum,-abun), 
           stratum = reorder(Phylum,-abun),
           alluvium = reorder(Phylum,-abun))) +
  geom_alluvium()+
    geom_stratum(width=0.45, size=0.1) +
   geom_bar(aes(fill = reorder(Phylum,-abun)),stat='identity', width=0.45) +
  scale_y_continuous(expand=c(0, 0))+
  theme_bw() +
  facet_grid( ~ grazing,scales = "fixed")+
  scale_fill_manual(values = mypal,name="Phylum") +
  scale_color_manual(values = mypal) +
  theme(legend.position = "top",
        panel.grid=element_blank(),
        panel.spacing.x = unit(0,units = "cm"),
        strip.background = element_rect(
     color="white", fill="white", 
     linetype="solid",size=0.8),
     strip.placement = "outside",
     axis.line.y.left = element_line(color="black",size=0.8),
     axis.line.x.bottom = element_line(color="black",size=0.8),
     strip.text.x = element_text(size = 14,face = "bold"),
     axis.text = element_text(face = "bold", 
                                 size = 12,color="black"),
     axis.title = element_text(face = "bold", 
                                  size = 14,colour = "black"),
      legend.title = element_text(face = "bold", 
                                   size =12,color="black"),
    legend.text = element_text(face = "bold", size =12,color="black"),
    axis.ticks.x = element_blank(),
    axis.ticks.y = element_line(size = 0.3),
     
        )+
   labs(x = "Depth",y= "Relative Abundance of Phylum (%)")
rel_allu

ggsave("rel_allu.pdf",rel_allu,device = "pdf",width = 12,height = 8,family="Times")

图6|相对丰度冲积图,rel_allu.pdf。

原始数据和代码EcoEvoPhylo公众号后台发送“alluvial_map”获取。

原文链接:R统计绘图 | 物种组成冲积图(绝对/相对丰度,ggalluvial) (qq.com)

推荐阅读

R绘图-物种、环境因子相关性网络图(简单图、提取子图、修改图布局参数、物种-环境因子分别成环径向网络图)

R统计绘图-分子生态相关性网络分析(拓扑属性计算,ggraph绘图)

 R统计绘图-变量分组相关性网络图(igraph)

机器学习-分类随机森林分析(randomForest模型构建、参数调优、特征变量筛选、模型评估和基础理论等)

R统计绘图-随机森林分类分析及物种丰度差异检验组合图

机器学习-多元分类/回归决策树模型(tree包)

R统计绘图-环境因子相关性+mantel检验组合图(linkET包介绍1)

R统计绘图-NMDS、环境因子拟合(线性和非线性)、多元统计(adonis2和ANOSIM)及绘图(双因素自定义图例)

R统计绘图-RDA分析、Mantel检验及绘图

R绘图-RDA排序分析R统计绘图-VPA(方差分解分析)

R统计绘图-PCA详解1(princomp/principal/rcomp/rda等)

R统计-PCA/PCoA/db-RDA/NMDS/CA/CCA/DCA等排序分析教程R统计绘图-PCA分析绘图及结果解读(误差线,多边形,双Y轴图、球形检验、KMO和变量筛选等)R统计-微生物群落结构差异分析及结果解读

R统计绘图-PCA分析及绘制双坐标轴双序图R统计绘图-分子生态相关性网络分析

R中进行单因素方差分析并绘图R统计-多变量单因素参数、非参数检验及多重比较

R绘图-相关性分析及绘图

R绘图-相关性系数图

R统计绘图-环境因子相关性热图

R统计绘图-corrplot绘制热图及颜色、字体等细节修改

R统计绘图-corrplot热图绘制细节调整2(更改变量可视化顺序、非相关性热图绘制、添加矩形框等)

R数据可视化之美-节点链接图R统计绘图-rgbif包下载GBIF数据及绘制分布图

R统计绘图 | 物种组成堆叠柱形图(绝对/相对丰度)

R统计-单因素ANOVA/Kruskal-Wallis置换检验R统计-正态性分布检验[Translation]

R统计-数据正态分布转换[Translation]

R统计-方差齐性检验[Translation]

R统计-Mauchly球形检验[Translation]R统计绘图-单、双、三因素重复测量方差分析[Translation]

R统计绘图-混合方差分析[Translation]

R统计绘图-协方差分析[Translation]

R统计绘图-One-Way MANOVA

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

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

相关文章

A/B 测试成为企业“新窗口”:增长盈利告别经验主义,数据科学才是未来

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 如何能够预知一个产品的未来&#xff1f;最好的办法当然是穿越到未来看一看。 这种“模拟未来、窥探底牌”的设想似乎只是一种天方夜谭。尤其在数字化浪潮冲击下&a…

磨金石教育摄影技能干货分享|杨元惺佳作欣赏——诗意人文

一般来说&#xff0c;人文摄影总会体现现实性多些。但杨老师是个摄影诗人&#xff0c;他的内心总能将刻板的现实融入美好的光芒。你在他的照片里&#xff0c;看着现实的摄影素材&#xff0c;所感受到的是诗意的绵绵未尽。春网&#xff08;中国&#xff09;正所谓春水碧于天&…

Word控件Spire.Doc 【Table】教程(19):在 C# 中的 Word 中添加/获取表格的替代文本

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

7、STM32 FSMC驱动SRAM

本次使用CubeMx配置FSMC驱动SRAM,XM8A51216 IS62WV51216 原理图&#xff1a; 注意&#xff1a;FSMC_A0必须对应外部设备A0引脚 一、FSMC和FMC区别 FSMC&#xff1a;灵活的静态存储控制器 FMC:灵活存储控制器 区别&#xff1a;FSMC只能驱动静态存储控制器&#xff08;如&…

软考中级有用吗

当然有用了&#xff01; 软考“简历”&#xff1a;计算机软件资格考试在全国范围内已经实施了二十多年&#xff0c;近十年来,考试规模持续增长&#xff0c;截止目前,累计报考人数约有五百万人。该考试由于其权威性和严肃性&#xff0c;得到了社会各界及用人单位的广泛认同&…

哈希函数的学习算法整理

前言 如果你对这篇文章可感兴趣&#xff0c;可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」&#xff0c;查看完整博客分类与对应链接。 概述 哈希函数学习的两个步骤&#xff1a; 转为二进制编码&#xff1a;可以先降维成实数&#xff0c;再转为二进制&…

【Spark分布式内存计算框架——离线综合实战】4. IP 工具类

2.2 IP 工具类 需要将IP地址代码封装到工具类中&#xff0c;方便后续使用&#xff0c;在包【cn.itcast.spark.utils】创建工具类&#xff1a;IpUtils.scala&#xff0c;定义方法【convertIpToRegion】&#xff0c;传递参数【ip地址和DbSearch对象】&#xff0c;返回Region对象…

数据结构-树的理解

目录 一&#xff1a;要解决的问题&#xff0c;出发点 1.演进 树的定义&#xff1a; 树的深度&#xff08;高度&#xff09; 平衡二叉树&#xff08;AVL树&#xff09; 红黑树&#xff1a; B树&#xff1a; 深夜有感&#xff0c;灵感乍现&#xff0c;忽然感觉对这个数据结…

Unity(二)--通过简单例子了解UGUI几个常用对象操作(Text,Image,Button)

目录 文本框等UI对象的添加Canvas 画布给Canvas添加脚本,绑定要操作的对象文本框Text的使用图像Image的使用更换图片Type:显示图片相关按钮Button的使用过渡导航事件绑定文本框等UI对象的添加 Canvas 画布 当创建一个UI元素的时候,如果没有Canvas 画布,就会自动创建一个画布…

学习资料|SSH隧道端口转发功能详解

概念ssh隧道大致可以分为3种&#xff0c;分别为本地端口转发&#xff0c;远程端口转发&#xff0c;动态端口转发&#xff0c;本文将让你彻底搞懂这3个转发的命令表达形式&#xff0c;让你能够灵活运用解决生活中的各种特殊场景。如果你正在使用mobaxterm、xshell、secureCRT、p…

怎样深度学习?主题碾压式学习法

怎样最深度的学习&#xff1f;【主题碾压式&#xff01;】 对一个学习主题&#xff0c;大体量投入学习资源 进行对比和实践 会取得突破 限定在社会科学和社会应用范围 趣讲大白话&#xff1a;大力出奇迹 【趣讲信息科技&#xff1a;84期&#xff0c;下期预告&#xff1a;很少有…

C++条件变量唤醒问题 notify_one() 唤醒不及时问题

条件变量唤醒问题 & notify_one() 唤醒不及时问题 因为我对于 C中条件变量的等待唤醒部分、notify_all & notify_one 的区别方面有些疑点&#xff0c;因此就有了以下的同 chatgpt 的沟通&#xff0c;希望同样能够帮助到大家 感叹于 chatgpt的强大 问题&#xff1f; 我比…

(三十二)大白话MySQL一起来看看INSRET语句的undo log回滚日志长什么样?

昨天我们讲解了undo log回滚日志的作用&#xff0c;说白了&#xff0c;就是你执行事务的时候&#xff0c;里面很多INSERT、UPDATE和DELETE语句都在更新缓存页里的数据&#xff0c;但是万一事务回滚&#xff0c;你必须有每条SQL语句对应的undo log回滚日志&#xff0c;根据回滚日…

Docker 名词介绍

Docker核心名词镜像文件镜像:简单理解为就是一个安装包&#xff0c;里面包含容器所需要运行的的基础文件和配置信息&#xff0c;比如&#xff1a;redis镜像、mysql镜像等。镜像的来源方式&#xff1a;1. 自己做镜像 比如&#xff08;自己开发微服务项目&#xff09;2. 拉取别人…

python学习笔记——数据类型总结

1.基本数据类型 &#xfeff; 数据类型对应的内置函数&#xff1a;将其他类型&#xff0c;转换成自己的类型。 int()float()bool()str()list()tuple()set()dict() 2.数据类型对比 &#xfeff;&#xfeff; 3.列表 w [a,b,c] #查 print(w[0]) print(w[0:3:2]) #增 w.appe…

css 属性和属性值的定义

文章目录css文本属性作业列表属性背景属性作业css文本属性 序号属性描述说明1font-size字体大小浏览器默认16px&#xff1b;2font-family字体当字体是中文字体&#xff0c;英文字体&#xff0c;中间有空格时候&#xff0c;要加双引号&#xff0c;多字体之间用逗号隔开 默认微软…

绿通科技在创业板开启申购:超额募资约19亿元,收入依赖贴牌

2月23日&#xff0c;广东绿通新能源电动车科技股份有限公司&#xff08;下称“绿通科技”&#xff0c;SZ:301322&#xff09;开启申购。据贝多财经了解&#xff0c;绿通科技本次上市的发行价为131.11元/股&#xff0c;发行数量为1749万股&#xff0c;市盈率73.75倍。 按发行价…

为什么数字孪生技术对工业物联网基础设施至关重要

随着工业物联网基础设施的不断建设和发展&#xff0c;数字孪生技术的重要性也变得越来越明显。由于数字孪生模型是工厂或其资产的虚拟版本&#xff0c;其高度精确和详细的特点使决策者获得了更高的可见性。下面让我们了解一下数字孪生技术给工业物联网基础设施带来的有效帮助。…

【Axure教程】自动生成页码的中继器表格

当表格数据较多时&#xff0c;我们经常会分页显示&#xff0c;这时我们就需要用到页码的元件了。所以作者今天就教大家如何在Axure中制作一个能自动根据中继器表格的数据以及分页情况&#xff0c;自动生成对应页码的原型模板。一、效果展示1、页码能根据表格数据和每页显示条数…

Apache Commons FileUpload Apache Tomcat拒绝服务漏洞解决方案

近日&#xff0c;安全狗应急响应中心关注到Apache官方发布安全公告&#xff0c;披露在Apache Commons FileUpload&#xff1c;1.5版本中存在一处拒绝服务漏洞&#xff08;CVE-2023-24998&#xff09;。Commons FileUpload是Apache组织提供的免费的上传组件。由于Apache Commons…