我有一个数据框,其中包含x坐标,y坐标和该位置的值。我想根据这个数据创建一个热图(密度图?),该数据根据每个位置的值进行着色。我正在寻找来自https://stackoverflow.com/questions/5004063/creating-a-heat-map-from-x-y-corrdinates-in-r的热像图。然而,我的数据不同。我不是拥有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的热图上发现了很多,但没有一个看起来与这种性质的数据有关。
有什么想法吗?
答案 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)