2013-07-23 30 views
5

我正在努力製作一個變量在ggplot中的比例圖。在ggplot2中,如何製作跨因子比例的條形圖(並添加誤差線)?

mtcars數據爲例和偷竊從this question解決方案的一部分我可以想出

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

該圖給出我在整個數據集中的每個cyl類別的比例。

我想知道的是每輛車在cyl類別中的比例,它們都有自動變速器(二元變量am)。

在每個酒吧的頂部,我想添加一個錯誤欄的比例。

只有ggplot可以嗎?或者我必須首先準備一個帶有摘要的數據框,並將其與條形圖的identity選項一起使用?

我在Cookbook for R網頁上發現了一些例子,但它們處理連續的y變量。

回答

6

我認爲製作新的數據框並將其用於繪圖會更容易。這裏我計算了比例和低/高置信區間值(從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() 
+0

非常感謝。作爲魅力工作! – radek