Przekazywanie zmiennej z typami linii do rodzaju linii ggplot
Jestem nowy w ggplot, więc miej ze mną. Wykreślam prognozy wzrostu dla 35 małych obszarów geograficznych, co stanowi niezdrową kwotę dla jednej działki, nawet przy użyciu fantastycznychdirectlabels
biblioteka. Potrzebuję jednak wszystkich serii do wstępnej selekcji.
Wyzwaniem jest uczynienie go czytelnym. Znalazłem poprawkę przez @Ben Bolker do używaniaduża liczba różnych kolorów ale mam problem ze zmianą rodzaju linii. Seria 35 nie musi być unikalna, ale chciałbym użyć 12 różnych typów, aby ułatwić czytanie poszczególnych serii.
Mój plan polegał na utworzeniu losowej listy zawierającej 35 elementów z 12 możliwych typów i przekazanie tego jako argumentu rodzaju linii, ale mam problem z uruchomieniem go z błędem:
Error: Aesthetics must either be length one, or the same length as the dataProblems:lty
Mam 35 wartości na liście rodzajów linii. Oczywiście chciałbym, aby typy, kolory i wszystko znalazło odzwierciedlenie w legendzie.
Stopione dane wyglądają tak; 9 lat obserwacji dla każdej z 35 serii:
> 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
Oto mój kod do tej pory:
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)
dodawanie
scale_linetype_manual("",values=lty$lty) +
po scale_color_manual zamiast argumentu rodzaju linii tworzy wykres, ale linie są takie same. Jak więc mogę zmienić linie dla liczenia dużych serii?