2011-02-03 13 views
8

quiero dibujar un mapa de calor en R pero mi archivo de datos es como estoDibujo de un mapa de calor en I basan en códigos postales solamente

Lat, Long, Zip, Zvalue 

Básicamente necesito para interpolar entre los valores de latitud y longitud y sacar los colores en base a la zvalue

¿Cómo se puede hacer eso en I

que finalmente quiero conseguir algo como esto

enter image description here

+1

Pruebe el paquete 'raster'. –

+0

Si tiene los datos de latitud y longitud, ¿son irrelevantes los códigos postales? –

+0

Sí, puedo usar códigos postales o datos lat/long – Mark

Respuesta

3

El pa ckage spatstat es tu amigo!

http://www.spatstat.org/spatstat/

Si los datos es un conjunto de eventos (como "un crimen ocurrido en (x, y)" para muchos (x, y)), entonces usted puede utilizar una estimación de la densidad del núcleo para generar su mapa de calor. Se puede ver un ejemplo aquí:

https://github.com/drewconway/WikiLeaks_Analysis/blob/master/density.r

específicamente línea 72.

Si sus valores z son valores reales (que es probablemente el caso de la lectura de su pregunta), puede utilizar la función de spatstat smooth que utiliza un kernel gaussiano para realizar la interpolación y obtener un conjunto de píxeles que se han generado al interpolar sus datos.

Como alternativa, puede usar el paquete akima (según lo recomendado por los autores spatstat) para la interpolación en las ubicaciones que especifique. Utiliza interpolación lineal o basada en spline y parece bastante sencillo (¡aunque no tengo experiencia en ello!).

En general, lo que estás tratando de hacer a menudo se llama "Kriging", por lo que obtienes muchos resultados si buscas en Google. Ver p. los paquetes gstat y geoR.

Finalmente (y FTW) puede usar Procesos Gaussianos para hacer el mismo tipo de cosas. Esto realmente le dará una distribución sobre posibles interpolaciones dados sus datos. El paquete R kernlab tiene una implementación, aunque no tengo ni idea de cómo usarlo.

3

Jeffrey Breen ha hecho este tipo de trama mediante el ggplot2 y los paquetes de código postal: el ganador del concurso http://jeffreybreen.wordpress.com/2011/01/05/cran-zipcode/

Eso debería empezar

+0

pero ni siquiera es un mapa de calor, en el mejor de los casos es un mapa de coropletas. Me pregunto si hay alguna función/paquete que pueda hacer la interpolación automáticamente. – Mark

+0

@Mark: tal vez 'heat.colors'? – Aaron

2

Usted puede mirar en el código de la caja ggplot estudia here

El autor utilizó geom_tile para hacer un mapa de calor, el título del gráfico es: Violent Crime Mapa del tiempo del centro de Houston

Cuestiones relacionadas