Построение почтового индекса с использованием шейп-файла и анимация с течением времени - PullRequest
0 голосов
/ 01 июля 2019

Итак, я попробовал различные коды, чтобы построить zip-код, используя файл формы, и анимировать его с течением времени.Я не хочу, чтобы точки с почтовым индексом, я хочу границы, и поэтому я использовал файл формы, загруженный из переписи.Я хотел бы представить их по некоторой ценности и посмотреть, как все изменилось с течением времени.Я не хочу вывод GIF.Было бы хорошо иметь ползунок или кнопку воспроизведения для анимации во времени.

Я почти хочу, чтобы это было похоже на тепловую карту, интерактивную со временем, а также, когда я наводил указатель мыши на почтовые индексы, он долженпредоставьте мне ценность.Пока что ни один из них не выглядит визуально привлекательным.

Я надеялся, что кто-нибудь сможет либо улучшить мой код, либо дать хорошее предложение относительно того, как я могу построить функцию ZIP-кода (НЕ COUNTY или STATE) и построить график с течением времени.

IЯ использовал tmaps, ggplot, choroplethrZip, plotly (у них нет графиков уровня почтового индекса?)

У меня есть несколько результатов, но я не могу точно получить то, что хочу.

Вот чтоУ меня так далеко:

library(choroplethr)
library(choroplethrZip)
library(sf)
library(ggplot2)
library(tmap)
library(tmaptools)
library(leaflet)
library(dplyr)
library(gganimate)
library(gifski)
library(transformr)
library(ggmap)
library(rgdal)
library(usmap)

# create a quick dummy data with dates with zip


options(scipen = 999)


data(df_pop_zip)


z <- df_pop_zip
z <- z[-c(4381:32989),]


time<-rep(1:24, 365)
dates<-seq(as.Date("01012005",format="%d%m%Y"),as.Date("31122005",format="%d%m%Y"),by=1)
TimeFrame<-data.frame(time)
TimeFrame$dates<-rep(dates,each=24)

dz <- data.frame((date = rep(dates,each=4)))
colnames(dz)[1] <- "date"


z$date <- dz$date
zz <- z

# now I have data with region,value,date

# next plot data at a zip code level and animate


mymap <- st_read("D:\\DOWNLOADS\\zip\\tl_2017_us_uac10.shp",stringsAsFactors = FALSE)
str(mymap)


df_pop_zip$GEOID10 <- df_pop_zip$region

zz$GEOID10 <- zz$region

map_and_data <- inner_join(mymap,zz)



## USING GGPLOT

p <- ggplot(map_and_data) + borders("state") + geom_sf(aes(fill = value)) +coord_sf(xlim = c(-150, -50), expand = FALSE) + 
  scale_fill_gradient(low = "#56B1F7", high = "#132B43") + transition_time(date) + labs(title = "Date: {frame_time}") +   shadow_mark(alpha = 0.3)


p

# the above code kinda gets be what I want but I don't think it accuratly represents what I want.

## USING TMAPS


x <- tm_shape(map_and_data) + tm_polygons("value" , id = "GEOID10", palette = "Greens") # + tm_facets(by = "date")
tmap_mode("view")
tmap_last()

# The above result is interactive, but not sure how to add time filter animation

Используя ggplot, я получаю что-то там, где он анимируется с течением времени (дата), но без ручного взаимодействия.Кроме того, сборщик мусора.

Tmaps обеспечивает хороший график, но не может анимировать сверх даты.

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

PS: Я повторяю, я не хочу видеть какой-либо государственный уровень или уровень страны.Я знаю, что есть тысячи примеров.: P

Спасибо, что уделили время <3 </p>

...