Tengo una pregunta con respecto a trazar un mapa coroplético. ¿Qué se recomienda con respecto a trazar un mapa con saltos personalizados? Y haz que se vea un poco atractivo.
En mi script , he usado el comando plot y spplot para visualizar algunos datos, pero no estoy completamente satisfecho con el resultado. Es fácil ver por qué. Usando spplot obtengo una rampa de color que repite los colores para diferentes valores, lo cual es un poco extraño. Al usar el diagrama con los saltos personalizados, no he podido hacer mejores intervalos para los valores, de modo que, por ejemplo, los valores cero son blancos en el mapa. Las proporciones sesgadas entre la leyenda y el mapa son, creo, probablemente el resultado de Rstudio.
¿Entonces me pregunté si alguien tiene mejores sugerencias para trazar mapas coropléticos en R usando saltos personalizados?
EDITAR 20-02-2013
Como sugerí, he usado ggplot2 para crear un mapa coroplético. He usado el código a continuación. Encontré dos problemas. Una es que después de fortificar los datos, no todos los datos del archivo de forma se transfieren al marco de datos. Así que tengo que cambiar el nombre de la variable "id" para poder fusionar los datos. 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 de color según la leyenda no se corresponde con el valor de la variable en los datos. ¿Estoy pasando por alto algo aquí?
# 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 al archivo de forma . Vea la respuesta a continuación para obtener una solución sobre cómo trazar la coropleta.
fuente
ggplot2
de mapas coropléticos, que creo que resulta una salida de mejor aspecto por defecto.Respuestas:
No veo un problema con el código anterior, excepto que tiene 6 niveles claros
onset
, por lo que los trataría como factores en lugar de como una variable continua. Tengafactor
en cuenta la llamada en el código a continuación.Ese código da el siguiente resultado:
Si quieres colores personalizados, puedes probar esto:
Lo que produce esto:
fuente
3
para laonset
columna y traza un3
en el gráfico. Eso parece funcionar. Presumiblemente me estoy perdiendo algo?El paquete classInt tiene una serie de funciones para calcular intervalos para datos numéricos: instálelo y lea los documentos.
fuente
Para los archivos, la solución que utilicé:
fuente