Tengo una pregunta sobre el trazado de un mapa de coropletas. ¿Qué se recomienda para trazar un mapa con cortes personalizados? Y que tenga un aspecto atractivo.
En mi script He utilizado el comando plot y spplot para visualizar algunos datos pero no estoy del todo contento con el resultado. Es fácil ver por qué. Utilizando spplot Obtengo una rampa de color que repite los colores para diferentes valores, lo cual es un poco extraño. Usando parcela con las pausas personalizadas No he podido hacer mejores intervalos para los valores, de manera que, por ejemplo, los valores cero sean blancos en el mapa. Las proporciones sesgadas entre la leyenda y el mapa creo que son probablemente el resultado de Rstudio.
Así que me preguntaba si alguien tiene mejores sugerencias para trazar mapas de coropletas en R utilizando saltos personalizados.
EDITAR 20-02-2013
Como se ha sugerido, he utilizado ggplot2 para crear un mapa de coropletas. He utilizado el código siguiente. He encontrado dos problemas. Uno es que después de fortificar los datos no todos los datos del shapefile se transfieren al marco de datos. Así que tengo que cambiar el nombre de la variable "id" para poder fusionar los datos. Un problema menor.
Un problema mayor es que a pesar de que los datos en el marco de datos son correctos, el ggplot muestra un mapa donde los datos son incorrectos. El valor del color según la leyenda no se corresponde con el valor de la variable en los datos. ¿Estoy pasando algo por alto?
# Plotting polygon shapefiles (try-out)
# Load the packages
require(rgdal)
require(maptools)
require(ggplot2)
gpclibPermit() # required for the fortify method
# Load the shapefile
africa=readOGR("/home/GIS",layer="africaII")
names(africa)
# Load the data on conflict
conflict<-read.csv("africa_conflict.csv", header=TRUE)
names(conflict)
# Merge the data together
africadat<-merge(africa, conflict, by="ISO3")
# Changing the data in the shapefile
africa@data <- africadat
# Fortify so that ggplot can plot
africa.points = fortify(africa,region="ISO3")
# Change "id" to "ISO3"such that the datasets can be merged again
names(africa.points)[names(africa.points)=="id"]<-"ISO3"
africa.df=merge(africa.points,africadat,by="ISO3")
# Plot the data
ggplot(africa.df) +
aes(long,lat,group=group) +
geom_polygon(aes(fill =onset))+
geom_path(color="white") +
coord_equal()
Actualización 13-11-2015: Enlace fijo a archivo de forma . Vea la respuesta más abajo para la solución de cómo trazar el coropleto.
5 votos
También miraría de usar
ggplot2
para los mapas de coropletas, que creo que da un mejor resultado por defecto.0 votos
Sí, no estaba seguro de utilizar ggplot2 ya que los datos long/lat de mi shapefile sólo especifican un punto y no el contorno de las fronteras nacionales. Por lo tanto, utilicé estos gráficos para crear un mapa coropleto. No estoy muy familiarizado con el manejo de datos GIS en R, así que no estoy seguro de si estoy pasando por alto alguna solución realmente sencilla para eso.
0 votos
Por favor, arregle el enlace al shapefile.
0 votos
Claro, no hay problema.