首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用长格式数据和plot_usmap时出现gganimate错误

使用长格式数据和plot_usmap时出现gganimate错误
EN

Stack Overflow用户
提问于 2020-11-11 01:55:09
回答 1查看 173关注 0票数 1

我正在尝试使用gganimate制作地图图形动画,但遇到了以下错误:

代码语言:javascript
复制
Error in seq.default(range[1], range[2], length.out = nframes) : 
'from' must be a finite number

当用于transition_time()的变量不是数字或数据的格式错误时,似乎通常会发生这种情况,但我不知道在我的例子中是如何发生的;我的数据是正确的长格式,而transition_time()的变量是数字,并且总是有限的。

这是plot_usmap()的特定问题吗?我是不是漏掉了什么明显的东西?

我的数据在GitHub上。代码如下:

代码语言:javascript
复制
library("usmap")
library("ggplot2")
library("gganimate")

load("helpdata.Rda")

check = plot_usmap(data = df_map, values = "frac_cov") +
  scale_fill_stepsn(breaks=c(-100, 0, 0.1, 0.2, 0.3, 0.4, 0.5,
                             0.6, 0.7, 0.8, 0.9, 1, 100),
                    colors=c("red", "gray100", "gray90", "gray80", "gray70", "gray60",
                             "gray50", "gray40", "gray30", "gray20", "gray10", "red"),
                    na.value="white") +
  labs(fill = "", title = "Fraction of excess deaths\nattributed to COVID-19") +
  theme(legend.position = "right", plot.title = element_text(hjust = 0.5)) +
  transition_time(month)

anim <- animate(check, nframes=9, fps=1)

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-11 12:13:01

您的数据集具有50个唯一的FIPS值。usmap包中的地图数据附带51。当plot_usmap创建ggplot图层时,它通过fips代码将您的数据集与地图数据合并,这会将NA值添加到month列,因为其中一个fips代码不匹配。

(transition_time对此大惊小怪,而transition_state则不然。我对gganimate包还不够熟悉,无法从理论上解释为什么会这样。)

在打印之前,将以下内容添加到数据集中。它应该可以解决这个问题:

代码语言:javascript
复制
df_map <- rbind(df_map,
                data.frame(month = sort(unique(df_map$month)),
                           frac_cov = 0,
                           fips = 11)) # the missing fips value

运行问题中所示的相同动画代码后的结果:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64774216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档