Это может быть сложно, потому что я не могу поделиться своими данными, и когда я попытался воспроизвести ошибку в другом примере, это не сработало. Я пытаюсь создать изумительную фигуру групп блоков переписи, чтобы увидеть, как переменная меняется со временем. У меня возникла проблема с анимацией, когда несколько групп блоков переписи будут перемещаться и преобразовываться в разные блоки между состояниями. Вот анимация, которая не работает должным образом. Это код, используемый для создания графика.
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)
Кто-нибудь знает, какая здесь возможная проблема? Я за свою жизнь не могу этого понять. Мне удалось определить пару групп блоков, которые вызывают проблемы, но когда я просматриваю данные для них, я не вижу какой-либо очевидной причины того, почему это происходит.