前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R绘制堆积柱形图

R绘制堆积柱形图

作者头像
生信交流平台
发布2022-09-21 16:39:08
5570
发布2022-09-21 16:39:08
举报

前面给大家讲了☞【R语言】百分比表格删除两行重新计算百分比,有小伙伴对文中的两个堆积柱形图比较感兴趣。那么今天我们就来聊聊这两张图是如何绘制出来了。

我们还是以☞【R语言】百分比表格删除两行重新计算百分比中的数据为例

代码语言:javascript
复制
#读入数据
a <- read.table(file="sample_bacteria_percentage.txt",sep="\t",header=T,row.names=1)
#生成png图片,删除之前的堆积柱形图
png(file="before.png",width=560,height=400)
#设置图片右边空白宽度,稍微宽一些,可以放置图注
par(mar=c(5,4,4,10))
#绘制堆积柱形图,样本名字垂直摆放,利用rainbow生成20种颜色
barplot(as.matrix(a),las=2,col=rainbow(20))
#图注摆放在右边,
legend("right",legend=rownames(a),
       xpd=T,  #放置到右边的空白处
       pch=20, #方形小图标
       inset = c(-0.35, 0),   #水平微调
       col=rainbow(20),  #颜色
       bty="n"  #图注不要边框
)
dev.off()


#删除前两行
b=a[-(1:2),]
#利用apply函数对列做处理,除以每列之和
result <- apply(b,2,function(x)x/(sum(x))*100)

#检查每列之和是不是100%
colSums(result)
#数据导出
write.table(result,file="remove_recal_percent1.txt",sep="\t",quote=F)

#生成png图片,删除之后的堆积柱形图
png(file="after.png",width=540,height=400)
#设置图片右边空白宽度,稍微宽一些,可以放置图注
par(mar=c(5,4,4,10))
#绘制堆积柱形图,样本名字垂直摆放,利用rainbow生成20种颜色
barplot(as.matrix(result),las=2,col=rainbow(20))
#图注摆放在右边,
legend("right",legend=rownames(result),
       xpd=T,  #放置到右边的空白处
       pch=20, #方形小图标
       inset = c(-0.25, 0),   #水平微调
       col=rainbow(20),   #颜色
       bty="n"   #图注不要边框
)
dev.off()

就可以得到如下两张突击柱形图

删除行之前

删除行之后

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信交流平台 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档