Передача переменной с типами линий в тип линии ggplot
Я новичок в ggplot, так что терпите меня. Я намечаю прогнозы роста для 35 небольших территорий, что является нездоровым показателем для одного участка, даже с использованием фантастическогоdirectlabels
библиотека. Однако мне нужны все серии для первоначального показа.
Задача состоит в том, чтобы сделать его читабельным. Я нашел исправление @Ben Bolker для использованиябольшое количество разных цветов но у меня проблемы с изменением типа линии. Серия 35 не должна быть уникальной, но я хотел бы использовать 12 различных типов, чтобы облегчить чтение отдельных серий.
Мой план состоял в том, чтобы создать случайный список с 35 элементами из 12 возможных типов и передать его в качестве аргумента типа линии, но у меня возникли проблемы при его запуске, с ошибкой:
Error: Aesthetics must either be length one, or the same length as the dataProblems:lty
У меня есть 35 значений в списке типов линий. Конечно, я хотел бы, чтобы типы, цвета и все это было отражено в легенде.
Расплавленные данные выглядят так; 9 лет наблюдения для каждой из 35 серий:
> 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
Вот мой код до сих пор:
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)
добавление
scale_linetype_manual("",values=lty$lty) +
после scale_color_manual вместо аргумента linetype создается диаграмма, но линии все одинаковые. Как же тогда заставить линии изменяться для большого количества серий?