Ü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?