因此,我尝试了各种代码,以便使用形状文件绘制邮政编码并随着时间进行动画处理。我不需要邮政编码点,不需要边界,因此我使用了从人口普查下载的形状文件。我想按一些值来绘制它们,并观察事情随着时间的变化。我不想要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