STEP.1 数据准备 所有数据储存为.csv格式(个人喜好)
A.基本数据
B.分组数据
STEP.2 绘图
library(reshape2)
library(ggplot2)
data <- read.csv(choose.files(),row.names = 1,header = T)### 导入数据A \\\row.names = 1是行名为第一列,####header = T为列名是第一行
data####查看数据A
#####注:如果涉及物种筛选和重排(例如合并丰度极低的物种),参见文末链接
data$taxa <- rownames(data)#####将行名作为一列添加进数据A
species$taxa####查看添加结果
species <- melt(species, id = 'taxa')####以taxa列为对象重塑数据A
species####查看结果
group <- read.csv(choose.files(),header = T)####读入分组数据B
names(group)[1] <- "ID"####第一列命名为ID
data <- merge(data, group, by = "ID")####以ID为参照合并A和B数据
data####查看结果
data$ID= gsub("_[0-9]", "", data$ID)####将"_处理名"剔除
data####查看结果
p <- ggplot(data, aes( value, ID,fill = taxa)) +####如果想做竖版的,value和ID位置对调
geom_col(position = 'stack', width = 0.7) +####width 设置柱子宽度
facet_wrap(~group, scales = 'free_x', ncol = 5) + ### ncol 是分组数量
scale_fill_manual(values = rev(c("#C7E9B8","#AF3BE7","#D59DD8","#E5E54A","#E14981",
"#DBD5C6","#81AE89"))) +####颜色可以自选 数量根据物种个数
labs(x = '', y = '') +######在''内填入x和y轴的标签
theme(panel.grid = element_blank(), panel.background = element_rect(color = 'black', fill = 'transparent'), strip.text = element_text(size = 12)) + ####size改group字体大小
theme(axis.text = element_text(size = 10), axis.title = element_text(size = 13), legend.title = element_blank(), legend.text = element_text(size = 11))#####第一个size改行名和刻度字体大小,第二个size改x,y的标签大小,第三个size改图例字体大小
p
注:更改变量名
a=c("as_1","as_2","asw_3","asw_4")
a = gsub("_[0-9]", "", a)
a
本文代码基本框架来源于R语言-使用ggplot2绘制物种丰度堆叠柱状图