2016-02-15 5 views
2

Я не могу получить ggplot2 для отображения geom_smooth() или stat_function() с моим boxplot.geom_smooth или stat_function с geom_boxplot

В конечном счете, я хочу отобразить накладную stat_function надпись на коробке.

library(ggplot2) 
#joke dataset, similar looking ish to my own data 
data=data.frame(date=as.Date(c("2011-02-01","2011-02-01","2011-02-01","2011- 02-01","2011-02-01", 
         "2011-02-10","2011-02-10","2011-02-10","2011-02-10","2011-02-10", 
         "2011-02-20","2011-02-20","2011-02-20","2011-02-20","2011-02-20", 
         "2011-02-28","2011-02-28","2011-02-28","2011-02-28","2011-02-28", 
         "2011-03-10","2011-03-10","2011-03-10","2011-03-10","2011-03-10"),format="%Y-%m-%d"), 
      spore=c(0,1,0,1,0, 
        1,2,0,1,1, 
        8,5,6,12,7, 
        18,24,25,32,14, 
        27,26,36,31,22) 
      ) 
#plots boxplot but not geom_smooth() 
ggplot(data,aes(x=date,y=spore,group=date))+geom_boxplot()+geom_smooth() 

#or maybe add a stat_function() so that I can have a logistic growth that way? 
#this is a made up function, I have a real function for my own data 
test <- function(x) {(40)/(1+exp((15/2)-(1/2)*x))} 
ggplot(data,aes(x=date,y=spore,group=date))+stat_function(fun=test) 

Я думаю, тот факт, что мои значения х финики завинчивания меня, но я не имею хорошую работу вокруг этого. Я действительно в конце своей веревки, и я понятия не имею, как это исправить.

ответ

4

Это не даты. Это группа эстетическая. Для geom_boxplot, где группы будут делать красивые отдельные квадратики, но для geom_smooth он попытается сделать гладко для каждой группы, то есть по одной точке на линию, т. Е. Нет линий. Исправление прямолинейно:

ggplot(data,aes(x=date,y=spore)) + 
    geom_boxplot(aes(group=date)) + 
    geom_smooth() 

enter image description here

+0

Спасибо! Это потрясающе! –

Смежные вопросы