【问题标题】:gganimate County map of census block groups float around between statesgganimate 县人口普查区块组地图在各州之间浮动
【发布时间】: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


【解决方案1】:

我最近遇到了类似的问题。我通过在我的审美中添加 group 参数并指定人口普查区来解决它。例如:

ggplot(data = travisJoined) + 
geom_sf(aes(geometry = geometry, fill = count, group = GEOID10)) +
theme_bw() + 
scale_fill_distiller(palette = "Spectral") + 
transition_states(date, 
                transition_length = 3, 
                state_length = 10)

【讨论】:

    猜你喜欢
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多