首页 文章

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

提问于
浏览
0

我是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 回答

  • 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

相关问题