使用shapefile绘制邮政编码并随着时间推移进行动画处理

时间:2019-07-01 04:52:09

标签: r ggplot2 geolocation geospatial ggplotly

因此,我尝试了各种代码,以便使用形状文件绘制邮政编码并随着时间进行动画处理。我不需要邮政编码点,不需要边界,因此我使用了从人口普查下载的形状文件。我想按一些值来绘制它们,并观察事情随着时间的变化。我不想要gif输出。最好有一个滑块或一个播放按钮来随着时间进行动画处理。

我几乎希望它像一个热点地图,随着时间的推移进行交互,并且当我将鼠标悬停在邮政编码上时,它应该可以为我提供价值。 到目前为止,它们似乎都没有视觉上的吸引力。

我希望有人能改善我的代码或就我如何绘制邮政编码(不是县或州级别)功能并随时间进行绘制提供很好的建议。

我曾经使用过tmap,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,我得到一些随时间(日期)变化的动画,但是没有手动交互。也是垃圾情节。

Tmap提供了很好的情节,但无法为'date'功能设置动画。

我什至愿意接受其他包装和建议。对于具有边界级别的邮政编码,随着时间的推移,任何具有良好交互性的东西都将是很好的。

P.S:我重复,我不想看到任何州或县级别。我知道有上千个例子。 :P

谢谢您的时间<3

0 个答案:

没有答案