【发布时间】:2017-11-28 16:21:12
【问题描述】:
我使用library(ggmap) 和stat_density2d() 函数制作了静态热图。为了在动态leaflet 地图上的闪亮应用程序中重新创建它,我找到了addHeatmap()。但是,生成的图像是不同的,ggmap 版本似乎提供了正确的结果。
GGMAP
传单
造成这种差异的原因是什么?
要运行以下两个可重现的示例,您可以下载我放在这里的一些数据(csv 文件)。 https://drive.google.com/drive/folders/0B8_GTHBuoKSRR1VIRmhOUTJKYU0?usp=sharing
请注意,leaflet 结果因缩放级别而异,但绝不与ggmap 结果匹配(例如,就最大热量的位置而言)。
这是ggmap 代码。
library(ggmap)
data <- read.csv("DATA.csv", sep=";")
data <- subset(data, !is.na(CrdLatDeg))
xmin <- min(data$CrdLonDeg)
xmax <- max(data$CrdLonDeg)
ymin <- min(data$CrdLatDeg)
ymax <- max(data$CrdLatDeg)
lon <- c(xmin,xmax)
lat <- c(ymin,ymax)
map <- get_map(location = c(lon = mean(lon), lat = mean(lat)), zoom = 17,
maptype = "satellite", source = "google")
ggmap(map) +
labs(x="longitude", y="latitude") +
stat_density2d(data=data, aes(x=CrdLonDeg, y=CrdLatDeg, alpha= ..level.., fill= ..level..), colour=FALSE,
geom="polygon", bins=100) +
scale_fill_gradientn(colours=c(rev(rainbow(100, start=0, end=.7)))) + scale_alpha(range=c(0,.8)) +
guides(alpha=FALSE,fill=FALSE)
这是leaflet 代码。
library(leaflet.extras)
data <- read.csv("DATA.csv", sep=";")
data <- subset(data, !is.na(CrdLatDeg))
leaflet(data) %>%
addTiles(group="OSM") %>%
addHeatmap(group="heat", lng=~CrdLonDeg, lat=~CrdLatDeg, max=.6, blur = 60)
【问题讨论】:
-
图像看起来如何?不看它们很难区分。
-
@IvanSanchez:我提供了数据和代码,你应该可以自己制作图像吗?我(还)不允许在此处嵌入图像,因此我将图像结果上传到我放置数据的同一个链接。
-
就我个人而言,我知道 Leaflet 和 heatmap 算法,但不知道关于 R 的第一件事。运行示例意味着花时间运行示例。拥有数据和代码是一件非常好的事情,但如果可以的话,你应该让其他人更容易看到问题。如果您将图片上传到某个地方,我将能够编辑您的帖子并将其包含在内。
-
好吧,就像我说的,他们在同一个 Google Drive 链接后面。感谢您的宝贵时间。
-
嗯,你确实没有提到谷歌驱动器链接有图像,至少当我读到这个时:-P
标签: r shiny leaflet heatmap ggmap