R语言绘制堆叠面积图示例

Posted 生物空间站

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言绘制堆叠面积图示例相关的知识,希望对你有一定的参考价值。

ggplot2绘制物种丰度堆叠面积图示例
R语言绘制堆叠面积图示例
    先前提到展示群落物种丰度,与此相较,堆叠面积图是另一种可视化选择,特别是在大样本情形(此时柱状图不便展示很多的样本或分组数量)或者涉及“时间序列”的情形中。 如下示例,使用堆叠面积图展示了(水稻)不同生长时期下,生长在两种土壤环境中的2种品种的水稻根系的细菌群落及其所处土壤的细菌群落的(主要的门纲)丰度组成的变化。

R语言绘制堆叠面积图示例

   

    本篇将同样通过这类物种丰度堆叠面积图,简要展示使用R包ggplot2中绘制堆叠面积图的一个示例。

    本文使用的作图数据的网盘链接(提取码 rtko):

    https://pan.baidu.com/s/1PtTKKvtrQ3V0qt1w6K-HjA

    文件“phylum_top10.csv”由16S高通量测序所得的物种丰度表转化而来,展示了主要细菌类群(行)在各样本(列)中的丰度信息。


R语言绘制堆叠面积图示例

ggplot2绘制堆叠面积图

  

    我们将使用堆叠面积图展示示例数据的12个样本中细菌类群的丰度组成及其时间演替趋势。

library(reshape2)
library(ggplot2)

#读取数据
phylum_top10 <- read.csv('phylum_top10.csv', row.names = 1, stringsAsFactors = FALSE, check.names = FALSE)

#重排表格为 ggplot2 作图样式,借助 reshape2 包 melt() 实现
phylum_top10$Taxonomy <- factor(rownames(phylum_top10), levels = rev(rownames(phylum_top10)))
phylum_top10 <- melt(phylum_top10, id = 'Taxonomy')
names(phylum_top10)[2] <- 'sample'

#合并分组信息,添加时间序列
group <- read.delim('group.txt', sep = ' ', stringsAsFactors = FALSE, check.names = FALSE)
phylum_top10 <- merge(phylum_top10, group, by = 'sample', all.x = TRUE)

##ggplot2 堆叠面积图
p <- ggplot(phylum_top10, aes(x = times, y = 100 * value, fill = Taxonomy)) +
geom_area(color = 'black') +
scale_fill_manual(values = c('gray', '#CCEBC5', '#BC80BD', '#FCCDE5', '#B3DE69', '#FDB462', '#80B1D3', '#FB8072', '#BEBADA', '#FFFFB3', '#8DD3C7')) +
theme(panel.grid = element_blank(), panel.background = element_rect(color = 'black', fill = 'transparent')) +
labs(x = 'Times', y = 'Relative Abundance(%)', title = '', fill = 'Top10 Phylum') +
scale_x_continuous(breaks = 1:15, labels = as.character(1:15), expand = c(0, 0)) +
scale_y_continuous(expand = c(0, 0))

#ggsave('ggplot2_area.pdf', p, width = 8, height = 5)
ggsave('ggplot2_area.png', p, width = 8, height = 5)

    特别注意,在ggplot2中,由于堆叠面积图类似于折线图的延伸样式,因此横坐标必须为数值类型才能被识别,不可为因子或字符类型,不然不会出图。


    以上仅通过一个简单示例,初步展示该图的作法。对于更复杂的类型,还需大家多多自行练习了。

我就知道你在看

以上是关于R语言绘制堆叠面积图示例的主要内容,如果未能解决你的问题,请参考以下文章

R语言 | 绘制环图示例

R绘制堆叠的密度图(Stacked Area Chart)

R语言ggplot2可视化:可视化时间序列堆叠的面积图堆叠面积图给出了多个时间序列的贡献程度的可视化表示,以便于相互比较(Stacked Area Chart)自定义设置X轴上的时间间隔和标签

R语言ggplot2可视化:绘制堆叠的密度图(Stacked Area Chart)

R语言绘制圆环图

什么是堆叠面积图?