Voglio tracciare una mappa del mondo usando ggplot2 (v.9) che combina due pezzi se informazione. Il seguente esempio illustra:ggplot map con l
library(rgdal)
library(ggplot2)
library(maptools)
# Data from http://thematicmapping.org/downloads/world_borders.php.
# Direct link: http://thematicmapping.org/downloads/TM_WORLD_BORDERS_SIMPL-0.3.zip
# Unpack and put the files in a dir 'data'
gpclibPermit()
world.map <- readOGR(dsn="data", layer="TM_WORLD_BORDERS_SIMPL-0.3")
world.ggmap <- fortify(world.map, region = "NAME")
n <- length(unique(world.ggmap$id))
df <- data.frame(id = unique(world.ggmap$id),
growth = 4*runif(n),
category = factor(sample(1:5, n, replace=T)))
## noise
df[c(sample(1:100,40)),c("growth", "category")] <- NA
ggplot(df, aes(map_id = id)) +
geom_map(aes(fill = growth, color = category), map =world.ggmap) +
expand_limits(x = world.ggmap$long, y = world.ggmap$lat) +
scale_fill_gradient(low = "red", high = "blue", guide = "colorbar")
Tuttavia, questa soluzione non è un bel modo per visualizzare sia growth
e category
. Growth
è molto visibile, ma è quasi impossibile vedere category
perché è solo un confine.
Ho provato ad aumentare la dimensione dei bordi, ma senza fortuna (la nuova geom_map è difficile da lavorare). Qualcuno sa come aumentare la dimensione del bordo nell'esempio sopra, o ancora meglio, un meccanismo per visualizzare due fattori?
Una domanda bonus: i nomi dei paesi, come quelli utilizzati dal pacchetto mappe (che presenta USSR!) Sono i dati utilizzati nell'esempio fragili. Preferisco usare ISO 3166-1 alpha-3 (1). Qualcuno sa dati immediatamente utilizzabili con ggplot2 che dispone di nomi ISO -... paese (incluso nei dati connessi)
Risultato:
result http://ompldr.org/vY3hsYQ
che cosa è world.map? non è definito nel tuo codice. Se provo a fortificare (w, region = "NAME"), ottengo un errore "carattere multibyte non valido". Si prega di fornire il codice riproducibile. –
Siamo spiacenti, corretto. Era w. – Rasmus
Viene visualizzato il seguente errore nella riga di correzione: "Errore in nchar (ID): stringa multibyte non valida 1" –