在ggplot2中,我如何制作跨因素的比例条形图(并添加误差线)?

5

我在使用ggplot制作一个变量在因素中的比例图方面遇到了困难。

mtcars数据为例,从这个问题中借鉴部分解决方案,我可以得出以下结果:

ggplot(mtcars, aes(x = as.factor(cyl))) +  
  geom_bar(aes(y = (..count..)/sum(..count..))) + 
  scale_y_continuous(labels = percent_format())

这张图告诉我每个类别在整个数据集中所占的比例。
不过,我想得到的是每个类别的汽车在自动变速器(二元变量)下的比例。
每个柱子上方我想加上一个比例的误差条。
使用ggplot单独做这件事是否可行?还是我需要先准备一份摘要数据框,并将其与条形图的identity选项一起使用?
我在R Cookbook网页上找到了一些示例,但它们涉及连续的y变量。
1个回答

8

我认为更容易创建新的数据框并将其用于绘图。在这里,我计算了比例和置信区间下限/上限值(从prop.test()结果中获取)。

library(plyr)
mt.new<-ddply(mtcars,.(cyl),summarise,
      prop=sum(am)/length(am),
      low=prop.test(sum(am),length(am))$conf.int[1],
      upper=prop.test(sum(am),length(am))$conf.int[2])

ggplot(mt.new,aes(as.factor(cyl),y=prop,ymin=low,ymax=upper))+
  geom_bar(stat="identity")+
  geom_errorbar()

非常感谢。运行得很好! - radek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接