2013-02-18 92 views
0

我是R新手。我希望其他人请向我解释如何使用基本R绘图以一致的方式在单个堆积条内添加绝对值功能(R基地)。我尝试使用R基础绘制堆积的条形图,但这些值以不一致/不合逻辑的方式出现,其方式应该是每个村庄100%,但它们不会达到100%。 这里是我工作的数据:如何使用R-base标记堆积条形图内的百分比值

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

总之,有5个自然村,并显示按性别采访户主的数据。

我用下面的命令对绘制的图形:

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

请帮忙在每个酒吧分配正确的价值观 感谢

回答

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