【发布时间】:2020-07-16 04:14:40
【问题描述】:
这可能很困难,因为我无法共享我的数据,并且当我尝试在另一个示例中重现该错误时,它不起作用。我正在尝试制作人口普查区块组的庞大数字,以查看变量如何随时间变化。我在动画中遇到问题,其中几个人口普查块组将浮动并重塑为州之间的不同块。这是not working properly.的动画这是用于生成情节的代码。
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)
当我试图用虚构的数据复制问题时,我无法做到。这是我尝试过的,但它可以工作fine.`
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)
有人知道这里可能存在什么问题吗?我这辈子都想不通。我已经能够识别出导致问题的几个块组,但是当我查看它们的数据时,我看不出任何明显的原因来说明为什么会发生这种情况。
【问题讨论】:
-
我会查看您无法共享的数据,特别是您用于加入的 ID。我知道这听起来很明显,你可能已经检查过了,但加入时似乎是个问题,祝你好运!
-
是的,我也是这么想的。我隔离了两个正在移动的块组,没有看到有任何明显错误的地方......不过我会继续挖掘。谢谢。
标签: r ggplot2 sf gganimate tigris