在R中创建连续热图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在R中创建连续热图相关的知识,希望对你有一定的参考价值。

我有一系列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范围内的每个点的平均距离显示为...

答案

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

另一答案

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

另一答案

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

另一答案
ggplot2::ggfluctuation(data, type="colour")

以上是关于在R中创建连续热图的主要内容,如果未能解决你的问题,请参考以下文章

如何创建带有热图的世界地图

如何在 python 中创建从绿色到红色的热图?

如何在r中创建一个具有正态分布的矩阵?

在 Visual Studio 中创建构造函数的代码片段或快捷方式

在片段android中创建listview

在片段中创建自定义列表视图时出错。必需的活动,找到的片段