карта округа gganimate группы переписей перемещаются между штатами - PullRequest
0 голосов
/ 04 апреля 2020

Это может быть сложно, потому что я не могу поделиться своими данными, и когда я попытался воспроизвести ошибку в другом примере, это не сработало. Я пытаюсь создать изумительную фигуру групп блоков переписи, чтобы увидеть, как переменная меняется со временем. У меня возникла проблема с анимацией, когда несколько групп блоков переписи будут перемещаться и преобразовываться в разные блоки между состояниями. Вот анимация, которая не работает должным образом. Это код, используемый для создания графика.

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)

Кто-нибудь знает, какая здесь возможная проблема? Я за свою жизнь не могу этого понять. Мне удалось определить пару групп блоков, которые вызывают проблемы, но когда я просматриваю данные для них, я не вижу какой-либо очевидной причины того, почему это происходит.

...