我是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)
请帮助在每个栏中分配正确的值 感谢
答案 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)