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