从指定的xy坐标和值构造R热图

时间:2015-03-22 07:55:37

标签: r coordinates heatmap

我有一个数据框,其中包含x坐标,y坐标和该位置的值。我想根据这个数据创建一个热图(密度图?),该数据根据每个位置的值进行着色。我正在寻找来自https://stackoverflow.com/questions/5004063/creating-a-heat-map-from-x-y-corrdinates-in-rheatmap热像图。然而,我的数据不同。我不是拥有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

如果这是重新发布,请链接我,我将删除此帖。我在R的热图上发现了很多,但没有一个看起来与这种性质的数据有关。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

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

当你说&#34;根据这个数据创建一个热图(密度图?)时,根据每个位置的值着色&#34; 你只是指&#34;绘制平铺图像&#34;

答案 1 :(得分:0)

试试这个:

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)

enter image description here