仅在基于zipcodes的R中绘制热图

Mar*_*ark 8 r

我想在R中绘制热图,但我的数据文件是这样的

Lat, Long, Zip, Zvalue
Run Code Online (Sandbox Code Playgroud)

我基本上需要在lat和long值之间进行插值,并根据zvalue绘制颜色

我怎么能在R中做到这一点

我最终想得到这样的东西

在此输入图像描述

Mik*_*war 4

包裹spatstat是你的朋友!

http://www.spatstat.org/spatstat/

如果您的数据是一组事件(例如对于许多 (x,y) 来说“在 (x,y) 发生犯罪”),那么您可以使用核密度估计来生成热图。您可以在此处查看示例:

https://github.com/drewconway/WikiLeaks_Analysis/blob/master/密度.r

特别是第 72 行。

如果您的 z 值是真实值(这可能是阅读您的问题的情况),那么您可以使用 spatstat 的smooth函数,该函数使用高斯内核来执行插值并返回通过插值数据生成的一组像素。

或者,您可以使用该akima包(按照spatstat作者的建议)在您指定的位置进行插值。它使用线性或基于样条的插值,看起来非常简单(尽管我没有这方面的经验!)。

更一般地说,你想要做的事情通常被称为“克里金法”,所以如果你点击谷歌搜索,你会得到很多结果。请参见例如gstatgeoR包。

最后(和 FTW)您可以使用高斯过程来做同样的事情。这实际上将为您提供给定数据的可能插值的分布。R 包kernlab有一个实现,但我不知道如何使用它。