数据用的是KEGG的L2级的分类相对丰度
长这个样子,柱状图的x轴,第一列是命名,第二列是分类,第三列是相对丰度
安装包就不解释了,直接读取,安装包的过程可以看其他的,这几个都是常规可以安装的,不可以的话可以直接百度参考其他的安装过程
#读包
library(ggplot2)
library(reshape2)
library(carData)
library(car)
#读取数据
a1 <-read.table("D:/Rrice/KEGG/Bacteria/L2 abundance.txt",header=T,sep = '\t')
#查看数据
head ( a1 )
#绘图
p1<-ggplot(a1,aes(x=reorder(CategoryL2,abundance),y=abundance,fill=CategoryL1))+#确定x,y轴,x=reorder是用来让柱状图按从小到大排列的,如果是多分组的会按照分组的和进行排序
geom_col( width = 0.7,position = 'dodge') +#设置柱状图宽度
scale_fill_manual(values =c ('#AE3321','#22AB33','#445299','#A233A3','#22B3A2','#A3B1C2'))+#添加分类颜色
labs(title = NULL,x=NULL, y = "Number of Edge",fill = NULL)+#显示标签(xy轴和图例)
theme_bw()+#去掉背景色
theme(legend.position = 'n')+#不显示图例
theme(panel.grid.major=element_blank(),panel.grid.minor=element_blank())+
coord_flip()+#x,y轴转置
theme(strip.text.y = element_text(angle = 0))+
facet_grid(CategoryL1 ~.,scales='free', space = 'free', margins ='am', drop = T)#分类别,按照我的数据的第二列进行分类
p1
#导出PDF图片,默认图片大小,可以利用width=?和height=?来设置图片的宽和高
ggsave('D:/Rrice/KEGG/Bacteria/L2 abundance.pdf')
这个code中还可以加让后面的分列自动换行的指令,我能力有限,大家加油!
上成品