2010-05-03 1629 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