在R中创建连续热图

问题描述 投票:8回答:4

我有一系列x和y坐标,每个坐标都附加了一个距离。我想创建一个热图,将x和y范围内每个点的平均距离显示为热图。由于这些点之间并不是以格子状均匀分布,因此该方法将需要某种平滑函数,该函数可以对数据进行聚类并计算附近每个点的平均值,然后用颜色表示该平均值。

到目前为止,使用ggplot2,我只能找到stat_density2dgeom_tile之类的方法,这些方法仅用于显示点密度并表示均匀分布的点(据我所知)。

理想情况下,它将遵循与该图像相同的原理:“在此处输入图像描述”

其中,根据附近的给定点分配了颜色,即使这些点的密度和位置也不均匀。

[我不想像这样的图像那样以矩阵形式创建热图:“在此处输入图像描述”>

其中表格以颜色编码。相反,我想使用不均匀分布的x和y坐标创建一个连续的热图,该坐标实际上显示了将数据分成无限多个矩形的限制。这可能不是该函数使用的实际方法,但是它提供了有关我要寻找的内容的一般思路。

以下是一些示例数据:

data=data.frame(x=c(1,1,2,2,3,4,5,6,7,7,8,9),
  y=c(2,4,5,1,3,8,4,8,1,1,6,9),
  distance=c(66,84,93,76,104,29,70,19,60,50,46,36))

我如何制作一个具有距离的热图作为覆盖整个数字范围的色标,就像提供的第一个链接中的图一样?

非常感谢您的帮助!

我有一系列x和y坐标,每个坐标都附加了一个距离。我想创建一个热图,以x和y范围内的每个点的平均距离显示为...

r map ggplot2 continuous heat
4个回答
10
投票

为了生成具有不规则间隔的坐标的连续地图,您首先需要内插规则网格(此处使用包interp的函数akima:]]


2
投票

这里有一个用户编写的函数,该函数使用ggplot2生成热图:


0
投票

使用@plannapus建议的akima::interp解决方案,您可以将其转换为ggplot2热图。


-1
投票
ggplot2::ggfluctuation(data, type="colour")
© www.soinside.com 2019 - 2024. All rights reserved.