我调查了你的案子,结果以我的方式完成了工作。我希望你不介意。您需要的是一个数据集
amount
left_join
无论如何,每个多边形具有不同数量的数据点。我计算了每个多边形的数据点总数,并创建
num
使用此,您可以创建一个向量
DAUID
替换
id
mymap2
.一旦您整理了数据,您将获得光栅地图
ggmap
然后,在光栅地图的顶部绘制多边形。您可以控制alpha值并查看颜色如何显示。例如,如果将该值降低到0.1,则很难看到颜色之间的差异。您可能需要考虑另一种显示道路的方式。一种方法是使用加拿大道路数据集,绘制埃德蒙顿的一些主要道路。希望这对你有帮助。
library(readr)
library(dplyr)
library(ggplot2)
library(ggmap)
library(rgdal)
#load data
mydata <- read_csv("fakedata.csv") %>%
rename(id = DAUID)
#Load in the shape file
mymap <- readOGR(dsn = ".", layer = "gda_048b06a_e")
mymap@data$DAUID <- as.numeric(as.character(mymap@data$DAUID))
mymap2 <- fortify(mymap)
# Get the number of data points for each polygon
group_by(mymap2, as.numeric(id)) %>%
summarize(total = n()) -> num
# Replace id with DAUID, and merge with mydata
mymap2 %>%
mutate(id = rep(unique(mymap$DAUID), num$total)) %>%
left_join(mydata, by = "id") -> mymap2
#map of Edm
edmonton <- get_map(location = "edmonton",maptype = "road")
ggmap(edmonton) +
geom_map(data = mymap2, map = mymap2,
aes(x = long, y = lat, group = group, map_id = id, fill = amount),
color = "black", size = 0.2, alpha = 0.3) +
scale_fill_gradient(low = "white", high = "red") +
coord_map(xlim = c(-113.35, -113.68), ylim = c(53.44, 53.65))