Настоящая тепловая карта в R - PullRequest
5 голосов
/ 07 декабря 2011

Я бы хотел создать настоящую тепловую карту в 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 будет цвет.

Вот то, что дискретная тепловая карта хотела бы получить для этих данных: enter image description here

Как сделать тепловую карту такой, чтобы цвета были плавными, а полное 2-мерное пространство было заполнено сглаженными цветами на основе значений z.

Пожалуйста, включите пример кода, а не просто ссылку, которая, вероятно, запутает меня еще больше, и я, возможно, уже посетил этот сайт в любом случае. Спасибо:)

Ответы [ 2 ]

14 голосов
/ 08 декабря 2011

Используйте следующее:

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 голос
/ 29 октября 2014

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)
...