geom_hex和ggmap lat / long misallignment

时间:2018-02-15 21:44:56

标签: r ggplot2 hex latitude-longitude ggmap

我是地理测绘新手,想在加拿大的地理地图上制作六角形热图。

我在原始数据集中有经验和经度,我甚至有一个变量,我希望用它来产生放置在地图上的每个六边形瓷砖的“热量”,但我遇到了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)

我得到了这个输出:

this output

我想要的是六角形热图,其中热量由等级字段显示。

接下来,当我使用以下代码添加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

如果有人知道如何解决这些问题,我们将不胜感激。谢谢!

0 个答案:

没有答案