我是地理测绘新手,想在加拿大的地理地图上制作六角形热图。
我在原始数据集中有经验和经度,我甚至有一个变量,我希望用它来产生放置在地图上的每个六边形瓷砖的“热量”,但我遇到了2个问题。
1)看起来好像有一个垂直平移应用于每个坐标。
2)我不知道如何显示另一个变量的“热量”而不显示热图的密度。
我的数据如下:
map<-get_map(location='Canada', zoom=3, maptype = "terrain",
source='google',color='color')
dat<-data.frame(cbind(c(47.00735, 47.36228, 47.40399, 48.08666,47.57196, 47.63742),
c(-52.95892, -53.29399, -52.79987, -52.89429, -53.27813, -52.92653),
c(86301.14, 1017390.34, 2662332.67, 473139.73, 8251899.99, 167512.52)))
names(dat)<-c('Longitude','Latitude','Rating')
现在有趣的是,当我运行以下代码时,我得到一个关于密度的六角形热图:
ggplot(dat, aes(x=Longitude,y=Latitude,color=Rating))+
stat_binhex(na.rm=TRUE)+
scale_fill_gradientn(colours=c("red","blue"),na.value=NA)
我得到了这个输出:
我想要的是六角形热图,其中热量由等级字段显示。
接下来,当我使用以下代码添加Google地图图层时:
ggmap(map) +
ggplot(dat, aes(x=Longitude,y=Latitude,color=Rating))+
stat_binhex(na.rm=TRUE)+
scale_fill_gradientn(colours=c("red","blue"),na.value=NA)
我收到以下错误:Error: Don't know how to add o to a plot
如果有人知道如何解决这些问题,我们将不胜感激。谢谢!