00. 写在前面
堆叠柱状图用于表征高维数据,例如微生物群落,代谢物组成是一种常见的图表类型,所以使用的次数也非常多,理所应当被封装成函数,一键绘制。
冲击图其实添加了堆叠柱状图之间的连线,这对于柱子之间的横向比较会更加容易一些,同堆叠柱状图互为替代。
堆叠柱状图在R语言中实现似乎不难,但是有许多的细节需要把握:整条柱子的子柱块排序问题,是否在柱子上添加标签,过滤低丰度柱子等在我们这条代码中都会解决。甚至前一段时间大家需要在堆叠柱状图上添加误差线,也都在这条代码里的。
01. 一条函数和参数解释
result = barplot(otu = "./otutab.txt",tax = "./taxonomy.txt",map = "./metadata.tsv",j = "Phylum",k= 0.01,rep = 6,axis_ord = "KO-OE-WT",label = FALSE,sd = TRUE)
otu = "./otutab.txt" :OTU表格
tax = "./taxonomy.txt" :物种注释文件
map = "./metadata.tsv":样本分组文件
j = "Phylum" :设置按照门为分类水平合并OTU,当然可以选择不同的分类水平;j = "Class";j = "Order";j = "Family";j = "Genus";甚至是OTU,如果你不嫌图例多的话。
k= 0.01:按照丰度过滤掉第丰度的物种,减少图例信息。
rep = 6 :测定每个处理重复数量。
axis_ord = "KO-OE-WT" :柱子在x轴额排布顺序。
label = FALSE:是否在柱子上添加标签。
sd = TRUE :是否对堆叠柱状图添加标准
02. 处理本地输出图片外我们还可以通过result提取图片
我设置函数返回图形结果的目的是方便大家根据自己需求修改颜色等图形属性。
#提取堆叠柱状图
p = result[[1]]
p
#提取冲击图
p = result[[2]]
p