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?