关于ggmap错误和最佳实践的热图

Ire*_*ene 6 r ggplot2 ggmap gstat kriging

我想在ggmap上绘制热图.

  library(ggmap)
  turku<-get_map('turku', zoom=13)
  turkumap<-ggmap(turku, extent="device", legend="topleft")
  turkumap
  turkumap+geom_density2d(mapping=aes(x = lon, y = lat),data = test, )
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

 Error in (function (x, y, h, n = 25, lims = c(range(x), range(y)))  : 
 bandwidths must be strictly positive
Run Code Online (Sandbox Code Playgroud)

测试变量是:

  test
         lon     lat var1.pred
  1  22.25320 60.4314 -67.04862
  2  22.25332 60.4314 -67.07793
  3  22.25344 60.4314 -67.11007
  4  22.25356 60.4314 -67.14517
  5  22.25368 60.4314 -67.18336
  6  22.25379 60.4314 -67.22478 
  7  22.25391 60.4314 -67.26956
  8  22.25403 60.4314 -67.31783
  9  22.25415 60.4314 -67.36973
  10 22.25427 60.4314 -67.42537
Run Code Online (Sandbox Code Playgroud)

建议?变量测试有更多的条目,我想绘制的是kriging的结果,通过gstat库中的函数krige获得.

有没有更好的方法呢?

我对不同的解决方案持开放态度

csg*_*pie 6

你遇到的问题是lat价值都是一样的.这意味着lat方向的方差为零,因此无法计算核密度估计的带宽

你可以硬编码带宽,

turkumap + geom_density2d(mapping=aes(x = lon, y = lat),
                 data = test, h=0.01)
Run Code Online (Sandbox Code Playgroud)

但在你的情况下,我建议不要使用geom_density2d这个特定的数据集.也许只是绘制积分?