【问题标题】:Which transition_* to use for animating map with gganimate?哪个 transition_* 用于使用 gganimate 为地图制作动画?
【发布时间】:2020-07-13 02:22:00
【问题描述】:

我想制作一张美国各县的动画等值线图,其中包含一段时间内确诊的 COVID-19 病例的数量(是的,又是一个冠状病毒图)。 Here 是一个为期三天的数据选择链接(欢迎提出更永久的托管位置的建议)。这是创建静态地图的代码(注释过滤器以包括所有日期):

library(tidyverse)
library(gganimate)
library(ggmap)
library(maps)
library(scales)

p <- part_data %>%
  filter(date == as.Date("2020-03-30")) %>%
  ggplot(aes(x = long, y = lat, group = group)) +
  geom_polygon(aes(fill = confirmed_new), color = "grey70", size = 0.05) + 
  geom_path(data = state_map, colour = "black") +
  coord_map() +
  scale_fill_distiller(trans = "log10", direction = 1, palette = "YlOrRd", na.value = "white", limits = c(1, 1E4), labels = comma)

这给出了这个非常好的情节:

但是我现在如何制作一个在日期间移动的动画呢?我试过了

p +
  transition_time(date)

p + 
  transition_states(date)

但是在这两种情况下,R 似乎在渲染进度条出现之前就冻结了,过了一会儿我收到了错误Error: cannot allocate vector of size 128.0 Mb。问题是我不知道我是否在这里使用了正确的方法。在gganimate 文档中,我读到group 美学用于链接属于同一图形元素的行,在本例中为县。但是group 也被ggplot 自己用来制作情节,这可能是问题吗?任何帮助表示赞赏。谢谢。

【问题讨论】:

    标签: ggplot2 gganimate


    【解决方案1】:

    我刚刚发现transition_states 也会呈现日期之间的转换。我认为这解释了为什么渲染需要这么长时间以及为什么我会遇到内存问题。使用 transition_manual 我让它按预期工作:

    p + 
      transition_manual(frames = date)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-01
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-27
      相关资源
      最近更新 更多