2012-06-27 39 views
15

Me gustaría utilizar R para generar un mapa del mundo muy básico con un conjunto específico de países con un color rojo para indicar que son países con malaria endémica.¿Cómo crear un mapa del mundo en R con países específicos rellenos?

Tengo una lista de estos países en un marco de datos pero estoy luchando por superponerlos en un mapa mundial.

He intentado usar el objeto wrld_simpl y también el método joinCountryData2Map en el paquete rworldmap.

Me gustaría comentar esta respuesta para evitar la adición de una pregunta posiblemente redundante, pero no tengo suficiente reputación en este momento, me disculpo por esto.

https://stackoverflow.com/a/9102797/1470099

Tengo dificultades para entender los argumentos dados al comando plot() - Me preguntaba si había sólo una manera fácil de decir r para representar todos los nombres de países en mi lista en el mapa wrld_simpl en lugar de usando grepl() etc. etc.

plot(wrld_simpl, 
    col = c(gray(.80), "red")[grepl("^U", [email protected]$NAME) + 1]) 
+0

@ttmaccer, por qué no añadir que como una respuesta? – A5C1D2H2I1M1N2O1R2T1

Respuesta

17

Usando el paquete rworldmap, podría utilizar el siguiente:

library(rworldmap) 

theCountries <- c("DEU", "COD", "BFA") 
# These are the ISO3 names of the countries you'd like to plot in red 

malDF <- data.frame(country = c("DEU", "COD", "BFA"), 
    malaria = c(1, 1, 1)) 
# malDF is a data.frame with the ISO3 country names plus a variable to 
# merge to the map data 

malMap <- joinCountryData2Map(malDF, joinCode = "ISO3", 
    nameJoinColumn = "country") 
# This will join your malDF data.frame to the country map data 

mapCountryData(malMap, nameColumnToPlot="malaria", catMethod = "categorical", 
    missingCountryCol = gray(.8)) 
# And this will plot it, with the trick that the color palette's first 
# color is red 
+0

muchas gracias, esto realmente me ayudó ... todavía tengo algunos de los pequeños países africanos que no aparecen en el mapa, pero esa será otra tarea de un día. – phlancelot

12

tratar de usar paquete googleVis y utilizar las funciones gvisGeoMap

por ejemplo,

G1 <- gvisGeoMap(Exports,locationvar='Country',numvar='Profit',options=list(dataMode='regions')) 

plot(G1) 
+1

¡Guau, nunca me di cuenta de lo poderoso que es googleVis! ¡Sintaxis muy simple, no hay necesidad de preocuparse por spatialPointsDataFrame, y la salida es hermosa! –

3
library(maptools) 
    data(wrld_simpl) 
    myCountries = [email protected]$NAME %in% c("Australia", "United Kingdom", "Germany", "United States", "Sweden", "Netherlands", "New Zealand") 
    plot(wrld_simpl, col = c(gray(.80), "red")[myCountries+1]) 

enter image description here

Cuestiones relacionadas