¿Cómo crear un mapa de coropletas atractivo en R?


18

He estado experimentando con técnicas de mapeo de coropletas en R, cosechando los beneficios de ggplot2 para crear gráficos hermosos dentro de un poderoso paquete de análisis de datos.

Cuando se trata de mapeo, no he podido producir resultados comparables a los que obtengo habitualmente de QGIS. Utilizando datos de flujo en Sheffield (datos totalmente replicables y archivo .qgs aquí ), QGIS produjo fácilmente lo siguiente:

Imagen QGIS

Lo mejor que pude producir usando R (usando el código descrito aquí ) fueron estos dos mapas, el primero usando GISTools, el segundo usando ggplot2:

GISTools choropleth ggplot2 choro

Para mí, la opción ggplot2 parece mucho más atractiva, si solo pudiera resolver el problema de las líneas defectuosas (probablemente un problema con el comando fortify (), o no leer en archivos de forma usando readOGR () descrito aquí ).

Entonces la pregunta es doble: ¿es la opción ggplot2 la mejor solución de mapeo de coropletas en R y, si es así, ¿cómo puedo resolver el problema de las líneas blancas defectuosas?

El código replicable para descubrir lo que he hecho está aquí .

Editar: dado que la opción de salida choropleth () es más atractiva:

Nueva trama

La fealdad de esta opción se puede reducir exportando a una resolución más alta y eliminando la leyenda ( otras leyendas R están disponibles). Todavía no logró cambiar el grosor de la línea, ¡pero está mejorando! Las líneas rojas representan flujos a zonas que emplean a> 5000 personas.


1
El primer mapa R se vería mucho mejor si redujese el tamaño de los contornos del polígono (y tal vez los hiciera completamente transparentes como en el primer ejemplo de QGIS).
Andy W

3
De acuerdo, pero no sé cómo hacer esto: el código que utilicé fue "choropleth (oas, v = oas $ to, shades)". Busqué documentación para eliminar líneas, pero no encontré nada: cran.r-project.org/web/packages/GISTools/GISTools.pdf
RobinLovelace

1
@RobinLovelace Si coloca su código R, seguramente podemos ayudarlo con estos problemas, pero sin un ejemplo reproducible no es fácil identificar los problemas. Aprecio el esfuerzo que ha realizado para colocar las capturas de pantalla (útiles), pero las imágenes son solo la guinda que debe entregarse sobre el pastel del código fuente.
SlowLearner

Consulte el código reproducible contenido en esta carpeta .zip, como se indicó anteriormente: dl.dropbox.com/u/15008199/Rflows-simple.zip
RobinLovelace

@RobinLovelace Gracias, interesante, he descargado
SlowLearner

Respuestas:


7

Hay algunos recursos excelentes sobre exactamente este tema muy interesante, que incluyen:

De revoluciones:

Choropleth Map R Challenge

Resultados del desafío Choropleth

Desde Stack Overflow.se:

Desarrollo de mapas temáticos geográficos con R

Hay excelentes ejemplos de mapas coropléticos y su código R asociado, incluido mi favorito (es decir, mapa adjunto) que usa ggplot2. Debería ser relativamente sencillo insertar su propio conjunto de datos en uno de los ejemplos de script.

Código R para este mapa disponible en This is the Green Room


Muchas gracias por marcar estos excelentes recursos y por mostrar el mapa de desempleo de los Estados Unidos. Sin embargo, falta una leyenda. ¿Alguna sugerencia sobre cómo traducir estos recursos en mapas de Sheffield? Fragmentos de código para resolver mi intento fallido de mapeo coroplético usando ggplot2 y los datos que he proporcionado de Sheffield son muy apreciados.
RobinLovelace

@RobinLoveLace Me alegra que los enlaces te hayan sido útiles. No debería tener problemas para conectar su propio conjunto de datos a las muchas secuencias de comandos de muestra, aunque es posible que tenga que arremangarse y hacer un poco de prueba y error en los paquetes específicos. Desafortunadamente, no tengo tiempo para hacerlo por usted, ¡lo siento!
Aaron

1
Jugaré y espero agregar más ediciones y código replicable cuando el mapa mejore.
RobinLovelace
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.