使用ggplot

时间:2016-03-10 14:41:42

标签: r plot ggplot2

根据受访者的性别分类,我一直在寻找一种能够将堆积条形图响应显示为百分比值的方法。

我成功地使用变量'sex'创建了一个堆积条形图用于填充,但我希望该图显示该变量之间的比例。我知道使用(..count ..)/ sum(.. count)和scale_y可以更改y轴,以便显示百分比,但我找不到将其用于我想要的方法。手动执行一个单独的数据框,频率值[编辑]反映百分比也是可能的,但我真的很想找到一种只使用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(labels=percent)

This is what the final graph looks like

1 个答案:

答案 0 :(得分:10)

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"应该能得到你想要的东西。