Agregue leyenda a líneas agregadas manualmente usando ggplot

Estoy tratando de agregar la leyenda correspondiente para 3 líneas agregadas manualmente usandoggplot. Mi código es el siguiente:

library(ggplot2)
df = data.frame(error = c(0.0832544999, 0.0226680026, 0.0082536264, 0.0049199958, 0.0003917755, 0.0003859976, 0.0003888253, 0.0003953918, 0.0003958398), sDev = c(8.188111e-03, 2.976161e-03, 1.466221e-03, 2.141425e-03, 2.126976e-05, 2.139364e-05, 2.169059e-05, 2.629895e-05, 2.745938e-05))

minimum <- 6
best.model <- 5

gplot <- ggplot(df, aes(x=1:length(error), y=error)) +
             scale_x_continuous(breaks = seq_along(df$error)) +
             geom_point(size = 3) +
             geom_line() +
             geom_errorbar(data = df, aes(x = 1:length(error), ymin = error - sDev, ymax = error + sDev), 
                           width = 0.1) + 
             geom_hline(data = df, aes(yintercept = error[minimum] + sDev[minimum]), linetype = "dashed") +
             geom_vline(xintercept = minimum, linetype = "dotted", color = "red", size = 1) +
             geom_vline(xintercept = best.model, linetype = "dotted", color = "blue", size = 1) +
             theme_gray(base_size = 18) + 
             theme(axis.text = element_text(color = "black")) +
             labs(x = "# of parameters", fontface = "bold") + 
             labs(y = "CV error") +
             labs(title = "Cross-validation error curve")

Me gustaría saber cómo agregar las leyendas para las 3 líneas punteadas en negro, rojo y azul.

¡Muchas gracias por adelantado!

Respuestas a la pregunta(1)

Su respuesta a la pregunta