Анимируйте встроенный сюжет с помощью gganimate - PullRequest
0 голосов
/ 09 ноября 2018

пример карты [https://i.stack.imgur.com/7TfSo.gif]

У меня есть анимация годовой численности птицы на протяжении нескольких лет. Я хочу добавить врезанный график тренда в численности птиц, линию, показывающую тренд, и точку, которая проходит через каждый год, соответствующий году на карте. Мне удалось создать график и карту как анимацию отдельно, но я не знаю, как их анимировать вместе. Я использую старую версию gganimate. Я прикрепил карту до сих пор, не двигая точку.

Кто-нибудь знает, как я могу анимировать точку на карте-врезке?

Набор данных карты выглядит примерно так:

easting northing  yr    pred
168500    16500 1994  8.565071
168500    16500 1995  8.944672
168500    16500 1996  9.324085
168500    16500 1997  9.682163
168500    16500 1998  9.991015
168500    16500 1999 10.216780
168500    16500 2000 10.327187

Код для карты:

my_plot<-ggplot()+
geom_point(data=test_map_data,aes(x=easting, y=northing, frame=yr, 
colour=pred), size=0.8)+
coord_quickmap()+
theme_bw() +
theme(panel.grid.major = element_blank(),
      panel.grid.minor = element_blank(),
      panel.border = element_blank(),
      panel.background = element_blank(),
      axis.line=element_blank(),
      axis.ticks=element_blank(),
      axis.title.x=element_blank(),
      axis.title.y=element_blank(),
      axis.text =element_blank())

#Add on trend graph
x <- my_plot + annotation_custom(grob=inset_plot, xmin=-305000, 
xmax=70000, ymin=630000, ymax=1200000)
gganimate(x, interval=0.5,file="trial.gif", ani.width=600, ani.height=700)

Пример данных для карты врезки:

test_inset<-data.frame(years=1994:2000, trend=c(1,1.2,1.27, 
1.16,0.97,0.85,0.83))

Код моей карты-врезки:

m<-ggplot()+geom_line(data=test_inset, aes(x=years, y=trend, group=1))+
   theme_bw()+geom_point(data=trend_graph_sp, aes(x=years, y=trend, 
   frame=years, group=1), size=2, colour="#2b8cbe")+
   xlab("Years")+ylab("Trend")+
   scale_x_continuous(breaks=c(1995,2000,2005))+
   theme(axis.text.x = element_text(angle=90))+
   theme(panel.grid.major = element_blank(),
   panel.grid.minor = element_blank(),
   panel.border = element_blank(),
   panel.background = element_blank(), 
   axis.line=element_line(colour="black"))
   inset_plot<-ggplotGrob(m)
...