前面給大家講了?【R語言】百分比表格刪除兩行重新計算百分比,有小伙伴對文中的兩個堆積柱形圖比較感興趣。那么今天我們就來聊聊這兩張圖是如何繪制出來了。
我們還是以?【R語言】百分比表格刪除兩行重新計算百分比中的數(shù)據(jù)為例
#讀入數(shù)據(jù)
a <- read.table(file="sample_bacteria_percentage.txt",sep="\t",header=T,row.names=1)
#生成png圖片,刪除之前的堆積柱形圖
png(file="before.png",width=560,height=400)
#設(shè)置圖片右邊空白寬度,稍微寬一些,可以放置圖注
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, #方形小圖標(biāo)
inset = c(-0.35, 0), #水平微調(diào)
col=rainbow(20), #顏色
bty="n" #圖注不要邊框
)
dev.off()
#刪除前兩行
b=a[-(1:2),]
#利用apply函數(shù)對列做處理,除以每列之和
result <- apply(b,2,function(x)x/(sum(x))*100)
#檢查每列之和是不是100%
colSums(result)
#數(shù)據(jù)導(dǎo)出
write.table(result,file="remove_recal_percent1.txt",sep="\t",quote=F)
#生成png圖片,刪除之后的堆積柱形圖
png(file="after.png",width=540,height=400)
#設(shè)置圖片右邊空白寬度,稍微寬一些,可以放置圖注
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, #方形小圖標(biāo)
inset = c(-0.25, 0), #水平微調(diào)
col=rainbow(20), #顏色
bty="n" #圖注不要邊框
)
dev.off()
就可以得到如下兩張突擊柱形圖
刪除行之前

刪除行之后

參考R繪制堆積柱形圖 獲取“all_pool_species_sample.txt”文件