【问题标题】:heatmap on ggmap error and best practiceggmap 错误和最佳实践的热图
【发布时间】:2013-09-24 03:30:53
【问题描述】:

我想在 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, )

我得到的错误是:

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

测试变量是:

  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

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

有没有更好的方法?

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

【问题讨论】:

    标签: r ggplot2 ggmap gstat kriging


    【解决方案1】:

    您遇到的问题是lat 值都相同。这意味着lat方向的方差为零,因此无法计算内核密度估计的带宽

    您可以硬编码带宽,

    turkumap + geom_density2d(mapping=aes(x = lon, y = lat),
                     data = test, h=0.01)
    

    但在您的情况下,我建议不要将 geom_density2d 用于此特定数据集。也许只是绘制点?

    【讨论】:

    • 我编辑了这个问题,因为我的观点不适合评论空间。希望没事。
    • @Irene 我会删除评论并就这个特定问题提出另一个单独的问题。
    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2012-01-10
    • 2018-09-12
    • 2017-11-26
    相关资源
    最近更新 更多