我一直在寻找一种方法,能够根据受访者的性别分类将堆叠的条形图响应显示为百分比值。
我成功使用变量“ sex”创建了一个堆积的条形图,但我希望该图显示此变量之间的比例。我知道使用(..count ..)/ sum(.. count)和scale_y可以更改y轴,以便显示百分比,但是我找不到一种将其用于所需内容的方法。也可以手动使用频率值[edit]反映百分比来制作单独的数据帧,但我真的很想寻找一种仅使用ggplot的方法。
这是当前代码:
workday<-ggplot(student,aes(x=Dalc2,fill=sex))
plot1<-workday+geom_bar()+facet_wrap(~romantic2)+labs(title="Workday Alcohol Consumption",y="Number of Respondents",x="Response")+ylim(0,300)
我知道这是一个非常基本的问题,但是对此的任何启发将不胜感激。
(数据来自uci.edu)
编辑:
对于那些对解决方案感兴趣的人,r.bot(非常感谢!)建议使用 geom_bar(position="fill")
还添加此内容以修改y轴: scale_y_continuous(labels=percent)
ggplot在线文档提供了一个很好的示例,说明堆积条形图达到100%。由于您尚未提供数据,因此我无法适应您的代码。例如,请参见
# http://docs.ggplot2.org/current/geom_bar.html
require(ggplot2)
g <- ggplot(mpg, aes(class))
g + geom_bar(aes(fill = drv), position = "fill")
本position = "fill"
应该得到你想要的东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句