笔记——相对丰度堆分组叠图

Order <- read.delim(file.choose(),row.names = 1, sep = '\t', stringsAsFactors = FALSE, check.names = FALSE)
Order$sum <- rowSums(Order)#求各物种总和
Order <- Order[order(Order$sum, decreasing = TRUE), ]#各物种按总和排序
Order_o <- subset(Order, select = -c(sum))#剔除sum列
write.csv(Order_o, '目绝对丰度排序.csv', quote = FALSE)
#相对丰度
Order_R <- t(t(Order_o)/colSums(Order_o))
Order_R
write.csv(Order_R, '目相对丰度.csv', quote = FALSE)

#选前10
Order_top10 <- Order_R[1:10, -ncol(Order_R)]
Order_top10
colSums(Order_top10)
write.csv(Order_top10, 'Order_top10.csv', quote = FALSE)
Order_top10['Others', ] <- 1 - colSums(Order_top10)
Order_R <- read.delim(file.choose(),row.names = 1, sep = '\t', stringsAsFactors = FALSE, check.names = FALSE)


#___________________________________________________________________________________-
install.packages("reshape2")
install.packages("ggplot2")
library(reshape2) 
library(ggplot2)
Order_top10 <- read.delim(file.choose(),row.names = 1, sep = '\t', stringsAsFactors = FALSE, check.names = FALSE)
Order_top10$Taxon <- factor(rownames(Order_top10), levels = rev(rownames(Order_top10)))
#rev函数可以实现矩阵的翻转

Order_top10 <- melt(Order_top10, id = 'Taxon')
group <-read.delim(file.choose(),sep = '\t', stringsAsFactors = FALSE)
names(group)[1] <- 'variable'
#按粒径分组
group$group <- factor(group$group,labels = c('0.2-0.6μm','0.6-1.2μm','1.2-2μm','2-20μm','20-200μm'))
#或
group$group <- factor(group$group,labels = c('Pico','Nano','Micro'))
#按水层分组
group$group <- factor(group$group,labels = c('0m','25m','50m','117m','150m','200m'))
Order_top10<- merge(Order_top10, group, by = 'variable')

windowsFonts(TNM = windowsFont("Times New Roman"))#设置字体
p <- ggplot(Order_top10, aes(variable, 100*value, fill = Taxon)) +
  geom_col(position = 'stack', width = 0.6) +
 facet_wrap(~group, scales = 'free_x', ncol = 6) +
  scale_fill_manual(values =  rev(c("#99CCFF","#FF9999","#FFCC33","#99CC99",
                                    "#FFCC99","#996699","#CCFF99","#999999"
  )))+ 
  guides(fill = guide_legend(reverse = TRUE))+#改变图例顺序
  labs(x = '', y = 'Relative Abundance(%)') +
  theme(panel.grid = element_blank(), panel.background = element_rect(color = 'black', fill = 'transparent'),
        strip.text = element_text(size = 11,family="TNM",colour = "black")) +
  theme(axis.text.y = element_text(size = 10,family="TNM",face = "bold",colour = "black") ,axis.text.x =element_text(angle = 90,hjust = 0.5,vjust=0.5, size= 8,family="TNM"), axis.title = element_text(size = 13,family="TNM",face = "bold"), 
        legend.title = element_blank(), legend.text = element_text(size = 8,family="TNM",color = NULL),legend.key.size = unit(0.8, "lines"))
p

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值