这可能很困难,因为我无法共享我的数据,并且当我尝试在另一个示例中重现该错误时,它不起作用。我正在尝试制作人口普查区块组的庞大数字,以查看变量如何随时间变化。我在动画中遇到问题,其中几个人口普查块组将浮动并重塑为州之间的不同块。这是无法正常工作的动画。这是用于生成绘图的代码。
library(tigris)
library(ggplot2)
library(sf)
library(gganimate)
library(transformr)
options(tigris_class = "sf")
travis <- block_groups(48, c(453))
# join travis with count data
travis2 <- rbind_tigris(geo_join(travis, travisSD[[1]], "GEOID", "origin_census_block_group"),
geo_join(travis, travisSD[[58]], "GEOID", "origin_census_block_group"))
p <- ggplot(data = travis2) +
geom_sf(aes(geometry = geometry)) +
geom_sf(aes(fill = proportionLeftHome)) +
theme_bw() +
scale_fill_distiller(palette = "Spectral") +
transition_states(date,
transition_length = 3,
state_length = 10) +
ease_aes('linear')
animate(p)
当我试图用虚构的数据复制问题时,我无法做到。这是我尝试过的,但效果很好。`
library(tigris)
library(ggplot2)
library(sf)
library(gganimate)
library(transformr)
set.seed(42)
options(tigris_class = "sf")
travis <- block_groups(48, c(453))
travis1 <- travis
travis2 <- travis
travis1$date <- as.Date("2020/02/01")
travis1$count <- runif(580, 0, 1000)
travis2$date <- as.Date("2020/03/01")
travis2$count <- runif(580, 0, 1000)
travisJoined <- rbind_tigris(travis1, travis2)
p <- ggplot(data = travisJoined) +
geom_sf(aes(geometry = geometry)) +
geom_sf(aes(fill = count)) +
theme_bw() +
scale_fill_distiller(palette = "Spectral") +
transition_states(date,
transition_length = 3,
state_length = 10)
animate(p)
有人知道这里可能存在什么问题吗?我这辈子都想不通。我已经能够识别出导致问题的几个块组,但是当我查看它们的数据时,我看不出任何明显的原因来说明为什么会发生这种情况。