R中的真实热图

时间:2011-12-07 19:46:46

标签: r heatmap

我想在R中制作一张真正的热图,就像天气图一样,除了我的数据要简单得多。

考虑这个三维数据:

x <- c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4)
y <- c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5)
z <- rnorm(20)

z将是彩色的。

以下是此数据的离散外观热图: enter image description here

如何制作热图,使颜色平滑,并根据z值将完整的2d空间填充平滑的颜色。

请包含示例代码,而不仅仅是可能会让我更加困惑的链接,而且我可能已经访问过该网站了。谢谢:))

2 个答案:

答案 0 :(得分:14)

使用以下内容:

interp

中的

akima image.plot

中的

fields

x <- c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4)
y <- c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5)
z <- rnorm(20)

library(fields)
library(akima)

s <- interp(x,y,z)
image.plot(s)

答案 1 :(得分:1)

smooth.2d包中的

fields做得很好(对于大量输入点,它比interp包中的akima要快得多。

library(fields)

x <- c(1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4)
y <- c(1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5)
z <- rnorm(20)

s = smooth.2d(z, x=cbind(x,y), theta=0.5)
image.plot(s)