5

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

考虑这个 3d 数据:

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 将是颜色。

以下是此数据的离散外观热图: 在此处输入图像描述

如何制作热图,使颜色平滑,并且整个 2d 空间都填充了基于 z 值的平滑颜色。

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

4

2 回答 2

14

使用以下内容:

interpakima包装中

image.plotfields包装中

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)
于 2011-12-07T20:04:26.863 回答
2

smooth.2din package 做得很好(对于大量输入点,它比from packagefields快得多。interpakima

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)
于 2014-10-29T13:27:42.697 回答