如何使用R-base在堆积条形图中标记百分比值

时间:2013-02-18 07:15:47

标签: r

我是R的新手。我希望其他人请向我解释如何使用基本的R绘图功能(R base)以一致的方式在单个堆叠条中添加绝对值。我尝试使用R base绘制堆积条形图,但是这些值以不一致/不合逻辑的方式出现,使得每个村庄的值应该是100%,但它们总和不是100%。 以下是正在处理的数据:

Village     100          200    300 400     500
Male    68.33333      53.33333   70 70      61.66667
Female  31.66667      46.66667   30 30      38.33333

总之,有五个村庄和数据显示按性别接受采访的户主。

我使用以下命令绘制图表:

barplot(mydata,col=c("yellow","green")
x<-barplot(mydata,col=c("yellow","green")
text(x,mydata,labels=mydata,pos=3,offset=.5)

请帮助在每个栏中分配正确的值 感谢

1 个答案:

答案 0 :(得分:2)

您需要使用cumsum计算高度。像这样:

heights =c(cumsum(dat[,1])-dat[,1]/2,cumsum(dat[,2])-dat[,2]/2),

我假设您的数据是,但同样的方法也可以应用于翻译,

 dat
        Male   Female
100 68.33333 31.66667
200 53.33333 46.66667
300 70.00000 30.00000
400 70.00000 30.00000
500 61.66667 38.33333

例如我这样做:

midpts <- barplot(dat,col=rainbow(5),beside=F)
legend(2, 320, rownames(dat), cex=1, angle = c(135, 45),  fill =rainbow(5))
text(x= rep(midpts,each=5),
y =c(cumsum(dat[,1])-dat[,1]/2,cumsum(dat[,2])-dat[,2]/2),
label = round(unlist(dat),2),cex=1.2)

enter image description here