2010-05-03 1631 views
6

我有40个科目,两组,超过15周,有一些测量变量(Y)。在ggplot2中添加趋势线/盒子图(按组)添加趋势线/箱图

我希望有一个情节,其中:x =时间,y = T,线按主题和颜色按组。

,我发现这是可以做到这样的:

TIME <- paste("week",5:20) 
ID <- 1:40 
GROUP <- sample(c("a","b"),length(ID), replace = T) 
group.id <- data.frame(GROUP, ID) 
a <- expand.grid(TIME, ID) 
colnames(a) <-c("TIME", "ID") 
group.id.time <- merge(a, group.id) 
Y <- rnorm(dim(group.id.time)[1], mean = ifelse(group.id.time$GROUP =="a",1,3)) 
DATA <- cbind(group.id.time, Y) 
qplot(data = DATA, 
     x=TIME, y=Y, 
     group=ID,  
     geom = c("line"),colour = GROUP) 

但现在我要补充的情节东西给(趋势线为每个组,两组之间的差异,例如,与一些CI阴影线) - 如何完成?

我记得曾经看到ggplot2可以(很容易)用geom_smooth来做到这一点,但我错过了一些关于如何使它工作的东西。

此外,我想知道可能有行像每个组的一个boxplot(与不同分位数和围栏等线)。但我想象回答第一个问题会帮助我解决第二个问题。

谢谢。

回答

16
p <- ggplot(data=DATA, aes(x=TIME, y=Y, group=ID)) + 
      geom_line(aes(colour=GROUP)) + 
      geom_smooth(aes(group=GROUP)) 

geom_smooth plot http://img143.imageshack.us/img143/7678/geomsmooth.png

+0

感谢RCS。我如何将阴影SE改为95%而不是68%? – 2010-05-04 06:30:58

+0

我只是注意到默认的平滑时间间隔没有(据我所知)考虑了主体内存在的任何自动关联。纵向数据几乎肯定会有相关结构。我非常喜欢这种情节。 – 2010-05-04 06:58:03

+0

你可以在'stat_smooth'中使用'level'(默认为0.95):'p + geom_smooth(level = 0.95,aes(group = GROUP))' – rcs 2010-05-04 07:01:28