技术贴 | R语言:ggplot画柱形图、排序、着色
点击蓝字↑↑↑“微生态”,轻松关注不迷路
本文由阿童木根据实践经验而整理,希望对大家有帮助。
原创微文,欢迎转发转载。
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=".")
图1
二、求和、排序
参数:
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),] # 倒序
图2
三、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'))
# 调整背景
图3
四、设置颜色和图例
代码:
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'))
图4
你可能还喜欢
1
4
5
微生态科研学术群期待与您交流更多微生态科研问题
(联系微生态老师即可申请入群)
了解更多菌群知识,请关注“微生态”。