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

news2024/10/6 11:25:25

一、数据准备

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

# 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\\stackarea_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。

二、 物种组成堆叠面积图

使用ggalluvialggplot2包在门水平绘制物种组成堆叠面积图。在R统计绘图 | 物种组成冲积图(绝对/相对丰度,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  物种组成堆叠面积图-绝对丰度
library(ggplot2)
library(ggalluvial)
abs_area = ggplot(data = phy,
       aes(x = grazing, y = abun, fill = reorder(Phylum,-abun),colour = reorder(Phylum,-abun),
           stratum = reorder(Phylum,-abun) ,
           alluvium = reorder(Phylum,-abun))) +
  ggalluvial::geom_alluvium(alpha = .75, decreasing = FALSE) +
    geom_stratum(width=0.3, size=0.1,color="black") +
  theme_bw() +
  facet_grid(.~depth ,scales = "fixed")+
    scale_fill_manual(values = mypal,name="Phylum") +
  scale_color_manual(values = mypal,guide="none") +
  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_area

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

图4|绝对丰度堆叠面积图,abs_area.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  物种组成堆叠面积图-相对丰度
library(ggplot2)
library(ggalluvial)
rel_area = ggplot(data = rel_phy,
       aes(x = grazing, y = abun, fill = reorder(Phylum,-abun),colour = reorder(Phylum,-abun),
           stratum = reorder(Phylum,-abun) ,
           alluvium = reorder(Phylum,-abun))) +
  ggalluvial::geom_alluvium(alpha = .75, decreasing = FALSE) +
    geom_stratum(width=0.3, size=0.1,color="black") +
  #scale_y_continuous(expand=c(0, 0))+
  theme_bw() +
  facet_grid(.~depth ,scales = "fixed")+
  scale_fill_manual(values = mypal,name="Phylum") +
  scale_color_manual(values = mypal,guide="none") +
  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_area

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

图6|相对丰度堆叠面积图,rel_area.pdf。

数据表和代码可从QQ交流群文件夹中下载,或EcoEvoPhylo公众号后台发送“Stackarea_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统计绘图-corrplot绘制热图及颜色、字体等细节修改

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

R数据可视化之美-节点链接图

R统计绘图-rgbif包下载GBIF数据及绘制分布图

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

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

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/366033.html

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

相关文章

pyhon笔记——Anaconda安装

一、简介 Anaconda包括Conda、Python以及一大堆安装好的工具包&#xff0c;比如&#xff1a;numpy、pandas等 Miniconda包括Conda、Python conda是一个开源的包、环境管理器&#xff0c;可以用于在同一个机器上安装不同版本的软件包及其依赖&#xff0c;并能够在不同的环境之…

教你如何搭建培训机构-学员管理系统,demo可分享

1、简介1.1、案例简介本文将介绍&#xff0c;如何搭建培训机构-学员管理。1.2、应用场景学员信息报表展示所有正式学员信息&#xff0c;可对学员进行分配班级、转课、续课、扩科、退课、阶段测评等操作。2、设置方法2.1、表单搭建1&#xff09;新建表单【学员】&#xff0c;字段…

扬帆优配|翻倍牛股“高台跳水”,一度跌停,啥情况

2月23日上午&#xff0c;A股商场窄幅震荡&#xff0c;上证指数上午收盘涨0.07%&#xff0c;煤炭、电力设备等板块领涨。 总的来看&#xff0c;A股商场上午整体体现安静&#xff0c;不过仍有个股大幅动摇&#xff0c;比如前期翻倍热门股汉王科技盘中“高台跳水”&#xff0c;一…

mysql间隙锁

首先我们这里有一个表t&#xff0c;其中的数据如下图所示 注意哈 update由于操作的最新的值&#xff0c;所以是当前读&#xff01; 另外一个事务插入 8的时候发生锁 而我对id为10的数据进行更新&#xff0c;却不会被锁住 分析&#xff1a;在执行当前读时&#xff0c;由于id7不存…

从0开始写Vue项目-Vue实现数据渲染和数据的增删改查

从0开始写Vue项目-环境和项目搭建_慕言要努力的博客-CSDN博客从0开始写Vue项目-Vue2集成Element-ui和后台主体框架搭建_慕言要努力的博客-CSDN博客从0开始写Vue项目-Vue页面主体布局和登录、注册页面_慕言要努力的博客-CSDN博客从0开始写Vue项目-SpringBoot整合Mybatis-plus实现…

element 下拉框支持搜索并输入

前言 下拉框对于开发来说再常见不过了&#xff0c;也是界面设计中的常用组件&#xff0c;在部分使用场景下&#xff0c;我们需要做到下拉框可以选择的同时&#xff0c;支持搜素和输入&#xff0c;以 element 的下拉框组件为例&#xff0c;当我们同时设置属性让其支持搜素和输入…

ssh的使用

Halo&#xff0c;这里是Ppeua。平时主要更新C语言&#xff0c;C&#xff0c;数据结构算法......感兴趣就关注我吧&#xff01;你定不会失望。 &#x1f308;个人主页&#xff1a;主页链接 &#x1f308;算法专栏&#xff1a;专栏链接 我会一直往里填充内容哒&#xff01; &…

蓝桥杯:统计子矩阵(十三届省赛C++组)

前言&#xff1a; 这道题目是矩阵类型题目经典题型&#xff0c;解题大体思路是前缀和双指针扫描&#xff0c;在我这篇博客中 第十三届蓝桥杯省赛CB组题解_第十三届蓝桥杯b组c答案_正在黑化的KS的博客-CSDN博客 简单提了一下大致解法&#xff0c;今天刷题时又遇到了一个极其相似…

利用Qgis进行WRF中土地利用数据的替换

一、地形数据来源&#xff1a;MCD12Q1_V006 1.1数据介绍&#xff1a; MODIS三级数据土地覆盖类型产品&#xff08;Land Cover data&#xff09;是根据一年的Terra和Aqua观测所得的数据经过处理&#xff0c;描述土地覆盖的类型&#xff0c;分辨率为500m。该土地覆盖数据集中包…

jdk、jre、jvm、javase、javaee

JDK Java开发工具包(Java Development Kit)。 开发者使用&#xff0c;里面除了JRE之外还包含java工具。 javac Java源程序编译器&#xff0c;将Java源代码转换成字节码。java Java解释器&#xff0c;直接从字节码文件&#xff0c;又称为类文件。执行Java应用程序的字节代码。…

运维必看|跨国公司几千员工稳定访问Office365,怎么实现?

【客户背景】本次分享的客户是全球传感器领域的领导者&#xff0c;其核心产品为电流和电压传感器&#xff0c;被广泛应用于驱动和焊接、可再利用能源以及电源、牵引、高精度、传统和新能源汽车等领域。 作为一家中等规模的全球化公司&#xff0c;该公司在北京、日本、西欧、东欧…

Spring事务管理(@Transactional使用)-官方原版

全面的事务支持是使用Spring的最令人信服的理由之一。 框架。Spring 框架为事务提供了一致的抽象 具有以下优势的管理&#xff1a;跨不同事务 API&#xff08;如 Java&#xff09;的一致编程模型 事务 API &#xff08;JTA&#xff09;、JDBC、Hibernate 和 Java Persistence A…

[docker]笔记-网络管理

1、docker网络原理 docker安装完成后&#xff0c;会在宿主机中创建一个虚拟网桥&#xff0c;用于容器之间和容器与外部网络的连接。虚拟网桥通常名称为docker0.可以使用ip link show命令进行查看&#xff1a; 在docker中&#xff0c;各个容器是通过这个docker0的虚拟网桥实现互…

IE自动跳转Edge?教你如何解决

本期看点&#xff1a; 最新windows10系统中, IE浏览器已经无法开启 取而代之是Edge浏览器 windows10默认不在安装IE浏览器 微软不在提供下载链接 而IE确实也存在一些安全隐患 大家非必要尽量避免使用IE浏览器 可选择使用Edge、Chrome、Firefox等 打开IE浏览器方式一&am…

laravel与workerman结合

安装workerman composer require workerman/workerman生成命令 php artisan make:command Workerman<?phpnamespace App\Console\Commands;use Illuminate\Console\Command; use Workerman\Worker;class Workerman extends Command {/*** The name and signature of the …

2022年度商业关键词调研报告(小红书美妆个护)

美妆个护&#xff0c;作为小红书最火热的领域之一&#xff0c;不断塑造流行新趋势&#xff0c;大量品牌在小红书孵化爆品&#xff0c;崛起破圈。回顾2022年&#xff0c;小红书美妆个护领域有哪些热门新趋势呢&#xff1f; 由此&#xff0c;千瓜推出《2022年度商业关键词调研报告…

机器学习-基于KNN及其改进的汉字图像识别系统

一、简介和环境准备 knn一般指邻近算法。 邻近算法&#xff0c;或者说K最邻近&#xff08;KNN&#xff0c;K-NearestNeighbor&#xff09;分类算法是数据挖掘分类技术中最简单的方法之一。而lmknn是局部均值k最近邻分类算法。 本次实验环境需要用的是Google Colab和Google Dr…

ASEMI高压MOS管60R380参数,60R380特征,60R380应用

编辑-Z ASEMI高压MOS管60R380参数&#xff1a; 型号&#xff1a;60R380 漏极-源极电压&#xff08;VDS&#xff09;&#xff1a;600V 栅源电压&#xff08;VGS&#xff09;&#xff1a;20V 漏极电流&#xff08;ID&#xff09;&#xff1a;11A 功耗&#xff08;PD&#x…

Python的PyQt框架的使用-资源文件夹的使用

Python的PyQt框架的使用-资源文件夹的使用一、前言二、Qt Designer加载资源文件三、资源文件的转换一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡&#xff0c;小伙伴们&#xff0c;让我们一起来学习Python的PyQt框架的使用。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三…

win10怎么取消开机密码?电脑小白也可以轻松掌握的3种方法

为了保护隐私&#xff0c;我们大多喜欢给自己的电脑“上锁”&#xff0c;即设置开机密码。有时候&#xff0c;我们想要取消电脑的开机密码&#xff0c;却不知有什么方法可以帮到我们。win10怎么取消开机密码&#xff1f;方法有很多。 比如&#xff1a;通过运行来进入用户账户设…