phyloseq箱线图的变量着色

Posted

技术标签:

【中文标题】phyloseq箱线图的变量着色【英文标题】:Coloring by variable for phyloseq boxplots 【发布时间】:2021-12-19 02:09:53 【问题描述】:

我有一个箱线图(见下文),我想根据指定的调色板为变量着色。我不确定如何为它们着色,因为代码基于 Phyloseq 包。我尝试在plot_richness 中添加aes(),但它似乎只适用于geom_boxplot()

library(ggplot2)
library(phyloseq)

palette <- c("#B0F2E7", "#166AD0", "#F89EE9", "#DA0000", "#C6C3D3", "#23202C")

plot_richness(physeq_shime, x='System', measures='Shannon') + theme_bw() + 
  xlab('SHIME') + scale_y_continuous(limits=c(2.0,3.2)) + 
  geom_boxplot(aes(fill='System')) 

如何按照自定义调色板的顺序填充箱线图?

提前致谢。

【问题讨论】:

数据长什么样,举个例子?也许在没有 phyloseq 的情况下使用 ggplot(...) + geom_boxplot(),见 ***.com/a/52507872/680068 我没有发布数据,因为数据集是基于 phyloseq 对象的。除非我使用不同的程序,否则我不可能在 phyloseq 之外获得 alpha 多样性值。 如果您将“调色板”提供给plot_richness 的“颜色”参数会怎样? plot_richness(physeq_shime, x='System', measures='Shannon', color = palette) 不起作用,因为它说“错误:没有要解析的表达式”。我试过在plot_richness 上使用color=,但还没有成功。 【参考方案1】:

这对我有用

library(ggplot2)
library(phyloseq)

palette <- c("#B0F2E7", "#166AD0", "#F89EE9", "#DA0000", "#C6C3D3", "#23202C")

plot_richness(physeq_shime, x='System', measures='Shannon') + theme_bw() + 
  xlab('SHIME') + scale_y_continuous(limits=c(2.0,3.2)) + 
  geom_boxplot(lwd=0.9, alpha=0.7, aes(fill=sample_data(physeq_shime)$System)) +
  scale_fill_manual(values=palette)

【讨论】:

以上是关于phyloseq箱线图的变量着色的主要内容,如果未能解决你的问题,请参考以下文章

箱线图boxplot

如何看箱线图??

使用 lapply 制作变量列表的箱线图

按两个条件分组的多个箱线图

GGPLOT箱线图按颜色细分,箱线图中间有平均值

R中多个变量的箱线图/直方图