我想在R中绘制热图,但我的数据文件是这样的
Lat, Long, Zip, Zvalue
我基本上需要在lat和long值之间进行插值,并根据zvalue
绘制颜色我怎样才能在R
中做到这一点我最终想得到这样的东西
答案 0 :(得分:3)
Jeffrey Breen使用ggplot2和zipcode包完成了这种情节:http://jeffreybreen.wordpress.com/2011/01/05/cran-zipcode/
这应该让你开始
答案 1 :(得分:3)
包裹spatstat
是你的朋友!
http://www.spatstat.org/spatstat/
如果您的数据是一组事件(例如“(x,y)的”犯罪发生在(x,y)),那么您可以使用内核密度估算来生成热图。你可以在这里看到一个例子:
https://github.com/drewconway/WikiLeaks_Analysis/blob/master/density.r
具体是第72行。
如果您的z值是实数值(可能是读取您的问题的情况),那么您可以使用spatstat的smooth
函数,该函数使用高斯内核执行插值并返回一组像素通过插入数据生成。
或者,您可以使用akima
包(根据spatstat
作者的建议)在您指定的位置进行插值。它使用线性或基于样条的插值,看起来非常简单(虽然我没有经验!)。
更一般地说,你想要做的事情通常被称为“Kriging”,所以如果你为谷歌提供了很多结果。参见例如gstat
和geoR
个包。
最后(和FTW)你可以使用高斯过程来做同样的事情。这实际上会为您提供给定数据的可能插值分布。 R包kernlab
有一个实现,虽然我不知道如何使用它。
答案 2 :(得分:2)
您可以查看ggplot案例研究竞赛获胜者here
的代码作者使用geom_tile制作热图,图表标题为:休斯顿市中心暴力犯罪天气图