Übergabe einer Variablen mit Linientypen an den Linientyp ggplot

Ich bin neu in ggplot, also trage mich. Ich entwerfe Wachstumsprognosen für 35 kleinräumige Gebiete, was für ein Grundstück trotz der Nutzung des Fantastischen eine ungesunde Summe istdirectlabels Bibliothek. Für das erste Screening benötige ich jedoch alle Serien.

Die Herausforderung besteht darin, es lesbar zu machen. Ich habe einen Fix von @Ben Bolker für die Verwendung gefundeneine große Anzahl unterschiedlicher Farben Aber ich habe Probleme beim Ändern des Linientyps. Die 35er-Serie muss nicht eindeutig sein, aber ich möchte die 12 verschiedenen Typen verwenden, um die Lesbarkeit der einzelnen Serien zu verbessern.

Mein Plan war es, eine zufällige Liste mit 35 Elementen der 12 möglichen Typen zu erstellen und diese als Linientyp-Argument zu übergeben, aber ich habe Probleme, sie zum Laufen zu bringen, mit dem Fehler:

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

Ich habe 35 Werte in der Linientyp-Liste. Natürlich möchte ich, dass sich die Typen, Farben und alles in der Legende widerspiegeln.

Die geschmolzenen Daten sehen so aus. 9 Jahre Beobachtungen für jede von 35 Serien:

> 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    

Hier ist mein Code soweit:

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)

Hinzufügen

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

Nach scale_color_manual anstelle des Linientyp-Arguments wird das Diagramm erstellt, aber die Linien sind alle gleich. Wie kann ich dann die Linien für die Anzahl der großen Serien variieren lassen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage