Создание анимированной карты в г - PullRequest
0 голосов
/ 10 марта 2020

У меня есть наборы данных (из опроса американского сообщества Бюро переписей США), в которых указано, сколько человек ездит на работу с длительностью поездки, которая составляет один из следующих интервалов времени: 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)
...