美文网首页R画图
R绘制堆积柱形图

R绘制堆积柱形图

作者: 生信交流平台 | 来源:发表于2021-06-08 21:53 被阅读0次

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

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

    #读入数据
    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()
    

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

    删除行之前

    删除行之后

    参考R绘制堆积柱形图 获取“all_pool_species_sample.txt”文件

    相关文章

      网友评论

        本文标题:R绘制堆积柱形图

        本文链接:https://www.haomeiwen.com/subject/hszjeltx.html