2011-12-07 32 views
5

Me gustaría hacer un mapa de calor verdadero en R, muy parecido a un mapa del tiempo, excepto que mis datos son mucho más simples.Un verdadero mapa de calor en R

Considere estos datos 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) 

El z sería de color.

Aquí es lo que un mapa de calor en busca discreta le gustaría para estos datos: enter image description here

¿Cómo puedo hacer un mapa de calor de tal manera que los colores son suaves y el espacio 2d completa está llena de colores suavizados a cabo en base a la Z valores.

Incluya el código de muestra, no solo un enlace que probablemente me confundirá aún más, y probablemente ya haya visitado ese sitio de todos modos. Gracias :)

+0

¿Hay alguna forma de que pueda obtener este esquema de color en los paquetes predeterminados? – Rodrigo

Respuesta

13

Usar la siguiente:

interp en el paquete akima

image.plot en el paquete 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) 
+2

Otra opción de trazado es utilizar la geometría geom_tile de ggplot2. –

0

smooth.2d en el paquete fields hace un buen trabajo (y es mucho más rápido que interp del paquete akima para una mayor cantidad de puntos de entrada.

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) 
Cuestiones relacionadas