gganimate显示沿某些对象的过渡

时间:2019-02-03 13:05:23

标签: r gganimate

我正在尝试创建动画以显示沿某些节点的过渡。我想显示点从SRC到TGT的强度变化,我的df如下所示。

> df
  node intensity Lon Lat
1  SRC      0.90  40  60
2  TGT      0.89  80  40
3  TGT      0.80  40  30
4  TGT      0.99  30  20

library(ggplot2)
 library(gganimate)
 df <- read.table(text = "node intensity Lon Lat
                          SRC .9  40  60 
                            TGT .89 80   40
                            TGT  .8 40 30
                            TGT .99 30     20", header = TRUE)
 ggm <- ggplot(data = df, aes(x = Lon, y = Lat, size= intensity, colour=node)) +
      geom_point(alpha=.5)+
      transition_states(node)+
      labs(title = "test")+ 
      shadow_wake(wake_length = 0.5)

我想要的输出是显示运动动画,像这样

enter image description here

我正在沿着框架获取固定点SRC和TGT

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以通过制作源的三个副本并为应该从源到目标位置的每个点分配一个组来获得所需的效果。

https://cran.r-project.org/web/packages/gganimate/vignettes/gganimate.html

  

关键是群体审美。您可能对此很熟悉   从绘制线条和多边形中获得美感,但在固定化时需要   更中心的地方。具有相同组美学的数据是   解释为跨州链接。群组的语义   ggplot2的美感在于,如果未定义,它将得到   根据所有离散美学(无   标签)。如果不存在,例如虹膜动画中的所有数据,   得到相同的组,因此将被gganimate匹配。

library(ggplot2)
library(gganimate)
df <- read.table(text = "node intensity Lon Lat grp
                          SRC .9  40  60 1
                          SRC .9  40  60 2
                          SRC .9  40  60 3
                            TGT .89 80   40 1
                            TGT  .8 40 30 2
                            TGT .99 30     20 3", header = TRUE)
ggm <- ggplot(data = df, aes(x = Lon, y = Lat, size= intensity, colour=node, group = grp)) +
  geom_point(alpha=.5)+
  transition_states(node)+
  labs(title = "test")+ 
  shadow_wake(wake_length = 0.5)

enter image description here