Передача переменной с типами линий в ggplot linetype

Я новичок в 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) +

после шкалы _цвета _вручную вместо аргумента тип линии выдает диаграмму, но линии все одинаковые. Как же тогда заставить линии меняться для больших серий?

example plot

5
задан Community 23 May 2017 в 12:19
поделиться