开干
#运行包
library(ggplot2)
library(readxl)
library(dplyr)
#读表,%>%是dplyr包里面的
data <- read_excel('D:/aSbreviflora/data/community/summary/summary.xlsx', sheet = 1,row.names(1)) %>%
column_to_rownames(.,var = 'phylum')#定义phylum列为行名列
#求和并排序
data$sum <- rowSums(data)
data <- data[order(data$sum, decreasing = TRUE),]
#计算相对丰度
dataabun <- data[1:24]/colSums(data[1:24]) #这里要排除掉sum列,不然最后一列的值是按sum算的
#筛选丰度较高的类群,并合并其余为Others
phylum_top15 <- dataabun[1:15, -ncol(dataabun)]
phylum_top15['Others',] <- 1- colSums(phylum_top15)
#输出筛选结果
write.csv(phylum_top15, 'D:/aSbreviflora/data/community/summary/phylum_top15.csv', quote = FALSE)
#绘图读表,其实是我能力不够,没办法让上面这个表格直接作图,要是有人可以解决这个问题,踢我一脚
data2 <- read.csv('D:/aSbreviflora/data/community/summary/phylum_top15.csv',header = T)
#添加第一列的列名
colnames(data2)[1] <- 'Phylum'
#转化为长格式
length <- pivot_longer(data2, cols = -1, names_to = "variable", values_to = "value")
####这两行是排序用的,主要用来固定我的处理名和图例名
length$Phylum <- factor(length$Phylum, levels = unique(length$Phylum))
length$variable <- factor(length$variable, levels = rev(unique(length$variable)))
#这个包是改颜色用的
library(ggsci)
#绘图,我的处理是y轴,值是x轴,也可以绘图完成后横纵坐标转换
ggplot(length, aes(x = value*100, y = variable, fill=Phylum)) +
geom_bar(stat = "identity") +
labs(y =NULL, x = "Relative abundance (%)", fill = "Phylum") +
theme_minimal() +
theme( axis.text.x = element_text( hjust = 1),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank())+
scale_fill_d3('category20')##给他添加一个颜色包
绘图就完成了,导出的话,用ggsave()函数就或者用Export,哪个好用用那个