У меня есть наборы данных (из опроса американского сообщества Бюро переписей США), в которых указано, сколько человек ездит на работу с длительностью поездки, которая составляет один из следующих интервалов времени: 14 минут или меньше 15-29 минут 30 -44 минуты 45-59 минут 60 минут или более
Данные полигонов , и я кодирую в R Studio. Я хотел бы показать анимацию из 5 графиков, по одному графику для каждого из этих пяти временных интервалов, перечисленных выше. В частности, я рассматриваю данные по переписному участку в пяти округах Мэриленда, которые являются пригородом Вашингтона, Д. C.: Округа Калверт, Чарльз, Фредерик, Монтгомери и Принс-Джордж.
После очистки данных, Прямо сейчас у меня есть следующий код, как попытка сделать анимированную серию графиков, используя ggplot и gganimate. Я в основном основывал свой код на этом примере , но я также посмотрел на эту статью / пост . Для ясности, мои графики, которые я сделал до сих пор, должны иметь plot_DrAl1, показывающий число людей, которые едут на работу один, поездка на работу составляет 14 минут или меньше, тогда как plot_DrAl2 предназначена для людей с поездками на работу 15-29 минут, plot_DrAl3 предназначен для людей с поездками на работу от 30 до 44 минут, а plot_DrAl4 предназначен для людей с поездками на работу от 45 до 59 минут. В конце концов , я хочу добавить пятый график, показывающий количество людей, которые едут на работу в одиночку с поездками на работу в течение 60 или более минут
Если кто-то имеет представление о том, что я делаю неправильно или как Я могу лучше достичь своей цели, пожалуйста, дайте мне знать! Я уже рассматривал некоторые относительно похожие вопросы, размещенные в Stackoverflow, но ни один из них не смог решить мою проблему.
#set-up
library(gganimate)
library(tidyverse)
library(sf)
library(readx1)
library(tidycensus)
library(tmap)
library(leaflet)
library(gapminder)
library(maps)
library(httr)
library(hrbrthemes)
library(GISTools)
library(sp)
library(raster)
setwd("Z:/ENVS_117/final_project/tidycensus_data")
census_api_key("ca1e6bccd0bcdbf2cd3462c3f055921aae8e3957")
#PLOTS
theme_set(theme_bw())
plot_DrAl1 <- ggplot() +
geom_polygon(data=dc_area, aes(Longitude, Lat), fill = "#e6d4ff") +
geom_polygon(data=cars_0014, aes(x = `Longitude`, y = `Lat`, fill = `Perc_DrAl14`)) +
# gganimate parts
transition_states(`Perc_DrAl14`, transition_length = 2, state_length = 20) +
enter_fade() +
exit_fade() +
# Styling
coord_equal(xlim = c(-75000, 825000), ylim = c(0, 1200000)) +
theme(panel.grid.major = 4,
panel.grid.minor = 0,
axis.text = element_blank(),
axis.title = element_blank(),
axis.ticks = element_blank(),
panel.background = element_rect(fill = "grey99", colour = "grey80"),
plot.title = element_text(hjust = 0, size = 16, vjust=0))
plot_DrAl2 <- ggplot() +
geom_polygon(data=dc_area, aes(Longitude, Lat), fill = "#e6d4ff") +
geom_polygon(data=cars_1529, aes(x = `Longitude`, y = `Lat`, fill = `Perc_DrAl29`)) +
# gganimate parts
transition_states(`Perc_DrAl29`, transition_length = 2, state_length = 20) +
enter_fade() +
exit_fade() +
# Styling
coord_equal(xlim = c(-75000, 825000), ylim = c(0, 1200000)) +
theme(panel.grid.major = 4,
panel.grid.minor = 0,
axis.text = element_blank(),
axis.title = element_blank(),
axis.ticks = element_blank(),
panel.background = element_rect(fill = "grey99", colour = "grey80"),
plot.title = element_text(hjust = 0, size = 16, vjust=0))
plot_DrAl3 <- ggplot() +
geom_polygon(data=dc_area, aes(Longitude, Lat), fill = "#e6d4ff") +
geom_polygon(data=cars_3044, aes(x = `Longitude`, y = `Lat`, fill = `Perc_DrAl44`)) +
# gganimate parts
transition_states(`Perc_DrAl44`, transition_length = 2, state_length = 20) +
enter_fade() +
exit_fade() +
# Styling
coord_equal(xlim = c(-75000, 825000), ylim = c(0, 1200000)) +
theme(panel.grid.major = 4,
panel.grid.minor = 0,
axis.text = element_blank(),
axis.title = element_blank(),
axis.ticks = element_blank(),
panel.background = element_rect(fill = "grey99", colour = "grey80"),
plot.title = element_text(hjust = 0, size = 16, vjust=0))
plot_DrAl4 <- ggplot() +
geom_polygon(data=dc_area, aes(Longitude, Lat), fill = "#e6d4ff") +
geom_polygon(data=cars_4559, aes(x = `Longitude`, y = `Lat`, fill = `Perc_DrAl59`)) +
# gganimate parts
transition_states(`Perc_DrAl59`, transition_length = 2, state_length = 20) +
enter_fade() +
exit_fade() +
# Styling
coord_equal(xlim = c(-75000, 825000), ylim = c(0, 1200000)) +
theme(panel.grid.major = 4,
panel.grid.minor = 0,
axis.text = element_blank(),
axis.title = element_blank(),
axis.ticks = element_blank(),
panel.background = element_rect(fill = "grey99", colour = "grey80"),
plot.title = element_text(hjust = 0, size = 16, vjust=0))
print(plot_DrAl1 + plot_DrAl2 + plot_DrAl3 - plot_DrAl4 + plot_layout(ncol = 1, heights = c(5, 1)))
}
}, movie.name = "windDevelopment.gif", interval = 1, ani.width = 1000, ani.height = 700))
animate(plot_DrAl, length = 15, width = 700, height = 400)