从指定的 xy 坐标和一个值构建 R 热图

Construct R heatmap from specified xy-coordinates and a value

我有一个数据框,其中包含 x 坐标、y 坐标和该位置的值。我想从这个数据创建一个热图(密度图?),它根据每个位置的值着色。我正在寻找像 这样的热图,它来自 。但是我的数据不同。我没有 x 的值和 y 的值,而是有坐标和在该对处找到的值。我还需要绘图的轴为 x 和 y 坐标。

这是我的数据示例:

x_coord <- c(1,2,3,4)
y_coord <- c(1,2,3,4)
value <- c(12,15,19,30)
foo.df <- data.frame(x_coord, y_coord, value)

      x_coord y_coord value
 1       1       1    12
 2       2       2    15
 3       3       3    19
 4       4       4    30

如果这是一个回复post,请link我,我会删除这个post。我在 R 的热图上发现了很多,但 none 似乎适用于这种性质的数据。

有什么想法吗?

我怀疑您正在寻找 image() 图,即 4x4 网格上的简单图块,而不是连续的 function/heatmap。 特别是如果您的坐标在 x=1..4,y=1..4 范围内并且您拥有全部 16 个完整值。

请参阅基础中的 image(),或 ggplot2 包中的 geom_tile();或 qplot(..., geom='tile')

当您说 "create a heatmap (density plot?) from this data which is colored based on value at each position" 时,您只是指 "plot a tiled image".

试试这个:

x_coord <- c(1,2,3,4)
y_coord <- c(1,2,3,4)
value <- c(12,15,19,30)
foo <- data.frame(x_coord, y_coord, value)
library(MBA)
foo=foo[ order(foo[,1], foo[,2],foo[,3]), ]
mba.int <- mba.surf(foo, 300, 300, extend=T)$xyz.est
library(fields)
fields::image.plot(mba.int)