2012-03-16 63 views
2

我正在试图制作一个ggplot图形,它将根据另一个(ZONE)使用face_grid显示变量的比例(SIZE),然后在每个类别中显示使用stat_summary的二进制变量(BG)。但现在,我想加入点(手段)并以百分比格式显示平均值(接近点)。为了加入我用stat_summary('arguments here',geom="line")和其他命令尝试的点,但事实是我不知道该怎么做。加入一行来自stat_summary()的结果

library(ggplot2) 
    library(scales) 

    set.seed(100) 

    data <- data.frame(ID = 1:600, 
        SIZE = rep(c('B','M','S'), each = 200), 
        ZONE = sample(c('A','B'), size = 600, replace=T), 
        BG = c(sample(0:1, size = 200, prob = c(1,1), replace=T), 
          sample(0:1, size = 200, prob = c(2,3), replace=T), 
          sample(0:1, size = 200, prob = c(1,2), replace=T))) 

    ggplot(data, aes(x = SIZE)) + 
     geom_bar(aes(y = (..count..)/sum(..count..))) + 
     facet_grid(~ZONE) + 
     stat_summary(aes(y = BG), fun.y=mean, colour="red", geom="point", size = 3) + 
     scale_y_continuous('Percent', labels = percent_format()) 

在此先感谢和抱歉我的英语。

回答

3

使用geom_line时请务必记住group美学!

ggplot(data, aes(x = SIZE)) + 
     geom_bar(aes(y = (..count..)/sum(..count..))) + 
     facet_grid(~ZONE) + 
     stat_summary(aes(y = BG,group = 1), fun.y=mean, colour="red", geom="line", size = 3) + 
     scale_y_continuous('Percent', labels = percent_format()) 
+0

谢谢@joran,你教会我一些新的东西。现在,我如何使用geom_text来显示平均值?再次感谢。 – jbkunst 2012-03-16 15:38:41