R: Leyenda personalizada para ggplot de capas múltiples

Estoy tratando de obtener una leyenda personalizada para un ggplot con datos provenientes de dos marcos de datos separados. Vea a continuación un ejemplo mínimo reproducible.

Lo que estoy tratando de lograr es tener una leyenda que describa el relleno de la cinta, la línea negra y la línea roja.

require(ggplot2)
x=seq(1,10,length=100)
data=data.frame(x,dnorm(x,mean=6.5,sd=1))
names(data)=c('x','new.data')
x.ribbon=seq(1,10,length=20)
ribbon=data.frame(x.ribbon,
                  dnorm(x.ribbon,mean=5,sd=1)+.01,
                  dnorm(x.ribbon,mean=5,sd=1)-.01,
                  dnorm(x.ribbon,mean=5,sd=1))
names(ribbon)=c('x.ribbon','max','min','avg')
ggplot()+geom_ribbon(data=ribbon,aes(ymin=min,ymax=max,x=x.ribbon),fill='lightgreen')+
  geom_line(data=ribbon,aes(x=x.ribbon,y=avg),color='black')+
  geom_line(data=data,aes(x=x,y=new.data),color='red')+
  xlab('x')+ylab('density')

Respuestas a la pregunta(1)

Su respuesta a la pregunta