Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何获取ggmap中top-N最大密度点坐标_R_Ggplot2_Ggmap - Fatal编程技术网

R 如何获取ggmap中top-N最大密度点坐标

R 如何获取ggmap中top-N最大密度点坐标,r,ggplot2,ggmap,R,Ggplot2,Ggmap,我对热图有问题。我可以通过ggmap和眼球看到热图上最密集的地方,但我如何才能得到这些点的确切长度和纬度呢。以下是测试代码: set.seed(1) mymap <- get_map(location = "Detroit", zoom = 8) mydata <- data.table(long = runif(min = -84, max = -82.5, n = 100), lat = runif(min = 42, max = 42.

我对热图有问题。我可以通过ggmap和眼球看到热图上最密集的地方,但我如何才能得到这些点的确切长度和纬度呢。以下是测试代码:

set.seed(1)
mymap <- get_map(location = "Detroit", zoom = 8)
mydata <- data.table(long = runif(min = -84, max = -82.5, n = 100),
                     lat = runif(min = 42, max = 42.7, n = 100))
g <- ggmap(mymap) +
  stat_density2d(data = mydata,
                 aes(x = long, y = lat, fill = ..level..,alpha = ..level..),
                 size = 0.5, bins = 10, geom = "polygon") + 
  scale_alpha_continuous(range(0.1,0.5))
g
set.seed(1)

mymapgeom\u density\u 2d的帮助说明:

Description:

     Perform a 2D kernel density estimation using ‘kde2d’ 
kde2d
功能位于
MASS
包中

阅读相关文档,您将了解如何从
ggplot
正在绘制的内核密度中获取值矩阵

然后问题归结为寻找矩阵的局部极大值:


仅供参考,您应该使您的代码在新的R会话中可复制,因此无论什么
library()
语句都需要在顶部(如下面的答案所示)。
> library(MASS); library(raster)
> w = matrix(1,3,3)
> x = kde2d(mydata$long, mydata$lat, n=100)
> r = raster(x)
> f <- function(X) max(X, na.rm=TRUE)
> localmax <- focal(r, w, fun = f, pad=TRUE, padValue=NA)
> r2 <- r==localmax
> maxXY <- xyFromCell(r2, Which(r2==1, cells=TRUE))
> image(x,asp=1)
> points(maxXY)
> maxXY
             x        y
[1,] -82.86796 42.43167
[2,] -83.47583 42.34163
[3,] -82.83831 42.18924