Ho una domanda per quanto riguarda la stampa di una mappa coropletica. Cosa è raccomandato per quanto riguarda la stampa di una mappa con interruzioni personalizzate? E farlo sembrare un po 'attraente.
Nel mio script ho usato il comando plot e spplot per visualizzare alcuni dati, ma non sono completamente soddisfatto del risultato. È facile capire perché. Usando spplot ottengo una scala di colori che ripete i colori per valori diversi, il che è un po 'strano. Usando la trama con le interruzioni personalizzate non sono stato in grado di fare intervalli migliori per i valori, in modo che ad esempio i valori zero siano bianchi sulla mappa. Le proporzioni distorte tra leggenda e mappa sono probabilmente il risultato di Rstudio.
Quindi mi chiedevo se qualcuno avesse suggerimenti migliori per tracciare mappe coropletiche in R usando interruzioni personalizzate?
MODIFICA 20-02-2013
Come suggerito, ho usato ggplot2 per creare una mappa coropletica. Ho usato il codice qui sotto. Ho riscontrato due problemi. Uno è che dopo aver fortificato i dati non tutti i dati dallo shapefile vengono trasferiti al frame di dati. Quindi devo rinominare la variabile "id" in modo da poter unire i dati. Problema minore.
Un problema maggiore è che nonostante i dati nel frame di dati siano corretti, ggplot mostra una mappa in cui i dati non sono corretti. Il valore del colore secondo la legenda non corrisponde al valore della variabile nei dati. Sto trascurando qualcosa qui?
# 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()
Collegamento ai dati di replica
Aggiornamento 13-11-2015: corretto il collegamento al file di forma . Vedi la risposta sotto per la soluzione su come tracciare la coropleth.
ggplot2
mappe per coropleth, che secondo me risulta un output più bello per impostazione predefinita.