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=".")
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'))

\color{green}{😀😀原创文章,码字不易,转载请联系作者😀😀}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容