Pasando variable con tipos de línea a ggplot linetype

Soy nuevo en ggplot, así que tengan paciencia conmigo. Estoy trazando proyecciones de crecimiento para 35 geografías de áreas pequeñas, que es una cantidad poco saludable para una parcela, incluso con el uso de la fantásticadirectlabels biblioteca. Sin embargo necesito todas las series para el screening inicial.

El reto es hacerlo legible. Encontré una solución por @Ben Bolker para usargrandes cantidades de colores distintos Pero estoy teniendo problemas para variar el tipo de línea. La serie 35 no necesita ser única, pero me gustaría usar los 12 tipos diferentes para hacer que la serie individual sea más fácil de leer.

Mi plan era crear una lista aleatoria con 35 elementos de los 12 tipos posibles y pasar eso como el argumento de tipo de línea, pero tengo problemas para hacer que funcione, con el error:

Error: Aesthetics must either be length one, or the same length as the dataProblems:lty

Tengo 35 valores en la lista de tipos de línea. Por supuesto, me gustaría que los tipos, colores y todo se reflejen en la leyenda.

Los datos fundidos se ven así; Observaciones de 9 años para cada una de las 35 series:

> simulation_long_index[16:24,]    
      year    geography    value
16    2018    sfr_2    101.1871
17    2019    sfr_2    101.1678
18    2020    sfr_2    101.2044
19    2012    sfr_3    100.0000
20    2013    sfr_3    100.1038
21    2014    sfr_3    100.2561
22    2015    sfr_3    100.0631
23    2016    sfr_3    100.8071
24    2017    sfr_3    101.2405    

Aquí está mi código hasta ahora:

lty <- data.frame(lty=letters[1:12][sample(1:12, 35,replace=T)])

g3<-ggplot(data=simulation_long_index,
   aes(
     x=as.factor(year), 
     y=value, 
     colour=geography,
     group=geography,
     linetype=lty$lty))+
       geom_line(size=.65) + 
       scale_colour_manual(values=manyColors(35)) +
     geom_point(size=2.5) +
     opts(title="growth")+
     xlab("Year") + 
     ylab(paste("Indexed Value (Rel. to 2012")) + 
     opts(axis.text.x=theme_text(angle=90, hjust=0))

print(g3)

añadiendo

    scale_linetype_manual("",values=lty$lty) +

Después de scale_color_manual en lugar del argumento de tipo de línea, se genera el gráfico, pero las líneas son todas iguales. ¿Cómo, entonces, hago que las líneas varíen para los conteos de series grandes?

Respuestas a la pregunta(1)

Su respuesta a la pregunta