ggalluvial ggplot2桑基图基础绘制

> Number=c(20,20,20,20,20,20,20,20,20)
> ck=c('A','A','A',
+      'D','D','D',
+      'B','B','B')
> treat=c('A','D','B',
+         'D','A','B',
+         'B','A','D')
> class=c('A','A','A','D','D','D','B','B','B')
> data <- data.frame(ck,treat,Number,class)
> data
  ck treat Number class
1  A     A     20     A
2  A     D     20     A
3  A     B     20     A
4  D     D     20     D
5  D     A     20     D
6  D     B     20     D
7  B     B     20     B
8  B     A     20     B
9  B     D     20     B
> ggplot(data, aes(y = Number, axis1 = ck, axis2 = treat)) +  # 使用 data 数据框,设置 y 轴为 Number,axis1 轴为 ck,axis2 轴为 treat
    geom_flow() +  # 添加流向图
    geom_alluvium(aes(fill = class)) +  # 添加 alluvium 层,根据 class 变量填充颜色
    guides(fill = "none") +  # 去除图例
    geom_stratum(alpha = 0.01) +  # 添加 stratum 层,设置透明度为 0.01
    scale_fill_manual(values = c("#FF7330", "#34C759", "#303B75")) +  # 手动设置填充颜色的取值范围
    geom_text(stat = "stratum", size = 5, aes(label = after_stat(stratum))) +  # 在 stratum 层上添加标签,标签内容为 stratum
    theme_void() +  # 使用无轴及网格线的主题
    ggtitle("Transition model") +  # 设置图表标题为 "Transition model"
    theme(plot.title = element_text(hjust = 0.5, vjust = -3), title = element_text(size = 20))  # 设置标题的对齐和字体大小

在这里插入图片描述

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于R语言多层桑基图绘制,你可以使用`ggalluvial`包来实现。这个包提供了一种直观的方式来展示微生物组分类学及丰度的信息。 首先,你需要安装`ggalluvial`包。可以使用以下代码安装: ```R install.packages("ggalluvial") ``` 安装完成后,你可以加载这个包: ```R library(ggalluvial) ``` 接下来,你需要准备绘制桑基图所需的数据。通常,你需要一个数据框,其中包含了不同分类学级别的分类信息和相应的丰度值。 例如,假设你有以下示例数据: ```R data <- data.frame( Kingdom = c("Bacteria", "Bacteria", "Bacteria", "Archaea", "Archaea"), Phylum = c("Proteobacteria", "Firmicutes", "Actinobacteria", "Euryarchaeota", "Crenarchaeota"), Class = c("Alphaproteobacteria", "Clostridia", "Actinobacteria", "Methanobacteria", "Thermoprotei"), Abundance = c(0.4, 0.3, 0.1, 0.05, 0.15) ) ``` 接下来,你可以使用`ggplot`函数创建一个基础的绘图对象,并使用`geom_flow`函数来添加桑基图的流动路径: ```R ggplot(data, aes(axis1 = Kingdom, axis2 = Phylum, axis3 = Class, weight = Abundance)) + geom_flow() ``` 这将创建一个简单的桑基图,其中不同分类学级别之间的流动路径根据丰度值的权重进行调整。 你可以根据需要进一步自定义绘图,例如添加标签、调整颜色等。`ggalluvial`包提供了很多选项来自定义桑基图的外观和布局。 希望这个回答能帮到你!如果你有任何其他问题,请随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值