我一直在寻找一种方法,能够根据受访者的性别分类,将堆积条形图响应显示为百分比值。
我成功地使用变量“性别”进行填充创建了堆积条形图,但我希望该图显示该变量之间的比例。我知道使用 (..count..)/sum(..count) 和 scale_y 可以更改 y 轴,以便显示百分比,但我找不到将其用于我想要的用途的方法。手动创建一个单独的数据框,其中频率值[编辑]反射(reflect)百分比也是可能的,但我真的热衷于寻找一种仅使用 ggplot 的方法。
This is what the plot currently looks like:
这是当前代码:
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(标签=百分比)
最佳答案
ggplot online documentation有一个很好的例子,将条形堆积到 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"
应该可以满足您的需求。
关于r - 使用 ggplot 在 R 中创建堆叠百分比条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35919551/