ggplot - Adicione uma linha de regressão em um boxplot com eixo x binned (não contínuo)

Eu tenho um conjunto de dados com esta estrutura:

df<- data.frame (VPD.mean=rnorm(100,mean=2,sd=0.8), treatment=c("ambient","elevated"), variable=rnorm(100,mean=50,sd=10))
df$group <- with(df, as.factor (ifelse (VPD.mean>0 & VPD.mean<=1,"0-1",ifelse (
  VPD.mean>1 & VPD.mean<=1.5,"1-1.5",ifelse (
    VPD.mean >1.5 & VPD.mean<2, "1.5-2",ifelse (
      VPD.mean >=2 & VPD.mean<2.5, "2-2.5",ifelse (
        VPD.mean >=2.5 & VPD.mean <3,"2.5-3", ifelse(
          VPD.mean >=3,">3", NA)  
      )))))))
df$group<- factor(df$group,levels=c("0-1","1-1.5","1.5-2" ,"2-2.5","2.5-3",">3"))

Criei um boxplot usando os grupos criados após o bin VPD.mean e, portanto, o eixo x não é contínuo (veja o gráfico abaixo):

Também gostaria de adicionar uma linha de regressão (suave) e, portanto, precisaria usar a variável contínua (VPD.mean) em vez da variável em bin (grupos) como eixo x. O resultado não é bom, porque a linha suave não corresponde ao eixo x dos gráficos. Este é o código para o ggplot:

ggplot(df[!is.na(df$group),], aes(group,variable,fill=treatment)) + 
  geom_boxplot(outlier.size = 0) + geom_smooth(aes(x=VPD.mean)) 

Qual é a solução para plotar o geom_smooth a partir de um eixo x diferente no mesmo gráfico? obrigado

questionAnswers(1)

yourAnswerToTheQuestion