Si bien sé que hay una serie de funciones para generar mapas de calor en R, el problema es que no puedo producir mapas visualmente atractivos. Por ejemplo, las imágenes a continuación son buenos ejemplos de mapas de calor que quiero evitar. El primero carece claramente de detalles, mientras que el otro (basado en los mismos puntos) es demasiado detallado para ser útil. Ambas gráficas han sido generadas por la función de densidad () en el paquete spatstat R.
¿Cómo puedo obtener más "flujo" en mis parcelas? Lo que busco es más del aspecto que pueden producir los resultados del software comercial SpatialKey ( captura de pantalla ).
¿Alguna pista, algoritmo, paquete o línea de código que pueda llevarme en esta dirección?
r
data-visualization
spatial
Figaro
fuente
fuente
Respuestas:
Hay dos cosas que afectarán la suavidad de la trama, el ancho de banda utilizado para la estimación de la densidad del núcleo y los saltos a los que asigna colores en la trama.
En mi experiencia, para el análisis exploratorio solo ajusto el ancho de banda hasta obtener una gráfica útil. Demostración a continuación.
Simplemente cambiar el esquema de color predeterminado no ayudará a nada, ni tampoco cambiará la resolución de los píxeles (en todo caso, la resolución predeterminada es demasiado precisa, y debe reducir la resolución y hacer que los píxeles sean más grandes). Aunque es posible que desee cambiar el esquema de color predeterminado con fines estéticos, se pretende que sea muy discriminatorio.
Lo que puede hacer para ayudar al color es cambiar el nivel de escala a logaritmos (en realidad solo ayudará si tiene un proceso muy poco homogéneo), cambiar la paleta de colores para variar más en el extremo inferior (sesgo en términos de la especificación de la rampa de color en R), o ajuste la leyenda para tener bins discretos en lugar de continuos.
Ejemplos de sesgo en la leyenda adaptados de aquí , y tengo otra publicación en el sitio SIG que explica cómo colorear los contenedores discretos en un ejemplo bastante simple aquí . Sin embargo, esto no ayudará si el patrón se suaviza demasiado o menos para empezar.
Para hacer que los colores sean transparentes en la última imagen (donde el primer contenedor de color es blanco) uno puede generar la rampa de color y luego reemplazar la especificación RGB con colores transparentes. Ejemplo a continuación usando los mismos datos que arriba.
fuente
Puede beneficiarse de la función interp del paquete akima. Esto le permitirá interpolar su matriz a otra resolución si es necesario. Para hacer algo como su ejemplo vinculado, necesitaría interpolar a una cuadrícula bastante fina (quizás con los argumentos xo y yo con una longitud de ~ 1000). Esto le dará una nueva matriz que puede trazar con image (). Si desea transparencia, esto requerirá un trabajo adicional. No es fácil hacerlo con una paleta de colores, por lo que puede terminar trazando cada cuadrícula como un polígono con un color asignado.
fuente
Es posible que desee ver en ggplot2. Parece que el paquete que ha probado no tiene excelentes esquemas de color o "flujo", eche un vistazo a RColorBrewer. Hay un blog donde implementó estos paquetes con un simple ejemplo.
No estoy seguro de si está tratando de trazar datos geográficos como se muestra en su ejemplo vinculado, pero si lo hace, sé que Google ofrece la "Guía para desarrolladores de Static Maps API V2" y puede combinar Google y R con un paquete llamado RgoogleMaps .
Buena suerte con tu investigación.
fuente
¿Has intentado poner en marcha la resolución
density
? Intentar argumentodimyx=c(512, 512)
o superior.fuente