导读
ggplot2函数包ggplot函数geom_bar参数画柱形图。
利用apply(df, FUN=sum)求和
利用df[order(df$sum, decreasing=T),]倒序
利用scale_x_discrete(limits=factor())设置横轴排序
一、输入数据
set.seed(1995)
# 随机种子
data=matrix(abs(round(rnorm(100, mean=1000, sd=500))), 10, 10)
# 随机正整数,20行,20列
colnames(data)=paste("Sample", 1:10, sep=".")
# 列名-细菌
rownames(data)=paste("Bin", 1:10, sep=".")
data
二、求和、排序
参数
apply(df, n, FUN=sum)
n=1按行求和
n=2按列求和
sum=apply(data, 1, sum) # 求和
bin=rownames(data) # 提取列名
data_sum=data.frame(bin, sum) # 新建数据框
data_sum=data_sum[order(data_sum$sum, decreasing=T),] # 倒序
data_sum
三、ggplot画图
library(ggplot2)
ggplot(data_sum, aes(x=bin, y=sum)) +
geom_bar(stat="identity", fill="blue")+
labs(x="", y="Bin abundance")+
scale_y_continuous(expand=c(0, 0))+
# 调整y轴属性
scale_x_discrete(limits=factor(data_sum[,1])) +
# 设第一列为因子,不排序
theme(axis.text.x=element_text(angle=45, hjust=1)) +
# angle:调整横轴标签倾斜角度
theme(panel.grid=element_blank(), panel.background=element_rect(color='black', fill='transparent'))
# 调整背景
结果
四、设置颜色、图例
ggplot(data_sum, aes(x=bin, y=sum, fill=bin)) +
geom_bar(stat="identity")+
labs(x="", y="Bin abundance", fill="Bin ID")+
scale_y_continuous(expand=c(0, 0))+
# 调整y轴属性
scale_x_discrete(limits=factor(data_sum[,1])) +
# 设第一列为因子,不排序
theme(axis.text.x=element_text(angle=45, hjust=1)) +
# angle:调整横轴标签倾斜角度
theme(panel.grid=element_blank(), panel.background=element_rect(color='black', fill='transparent'))