library(sp)
library(spdep)
library(ggplot2)
library(ggmap)
library(rgdal)
ottenere e violino con i dati:ggmap con geom_map sovrapposto
nc.sids <- readShapePoly(system.file("etc/shapes/sids.shp", package="spdep")[1],ID="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66"))
nc.sids=spTransform(nc.sids,CRS("+init=epsg:4326"))
Get mappa sfondo da stamen.com, trama, sembra piacevole:
ncmap = get_map(location=as.vector(bbox(nc.sids)),source="stamen",maptype="toner",zoom=7)
ggmap(ncmap)
Creare una cornice di dati con una lunga, lat, Z e trama sulla mappa e una trama vuota:
ncP = data.frame(coordinates(nc.sids),runif(nrow(nc.sids)))
colnames(ncP)=c("long","lat","Z")
ggmap(ncmap)+geom_point(aes(x=long,y=lat,col=Z),data=ncP)
ggplot()+geom_point(aes(x=long,y=lat,col=Z),data=ncP)
dargli alcuni ID unici chiamati 'id' e fortificare (con vitamine e ferro?)
[email protected][,1]=1:nrow(nc.sids)
names(nc.sids)[1]="id"
ncFort = fortify(nc.sids)
Ora, la mia mappa e miei limiti, voglio tracciare il tasso di 74 nascita:
myMap = geom_map(aes(fill=BIR74,map_id=id),map=ncFort,[email protected])
Limits = expand_limits(x=ncFort$long,y=ncFort$lat)
e su un terreno vuoto posso:
ggplot() + myMap + Limits
ma su un ggmap non posso:
ggmap(ncmap) + myMap + Limits
# Error in eval(expr, envir, enclos) : object 'lon' not found
Alcune versioni:
> packageDescription("ggplot2")$Version
[1] "0.9.0"
> packageDescription("ggmap")$Version
[1] "2.0"
posso aggiungere geom_polygon a ggplot o ggmap e funziona come previsto. Quindi qualcosa è con geom_map ....
ottengo "Errore nella validDetails.polygon (x): ' x 'and' y 'e' id 'devono essere tutti della stessa lunghezza "se aggiungo inherit.aes = FALSE a myMap nell'esempio sopra. – Spacedman
@Spacedman Ho modificato la mia risposta per includere il codice e il risultato. Il codice è quasi esattamente il tuo codice tranne l'aggiunta 'inherit.aes = FALSE' nella chiamata' geom_map'. –
Ho aggiornato ggplot2 e ggmap a quelle versioni e ora ggplot2 è completamente rotto. Il primo esempio in geom_point produce un grafico senza punti, imposta solo gli assi, il grigio b/g e nulla. Da una R --vanilla senza altri pacchetti caricati. Forse una versione di versione R (2.14.2 ...). Grr. – Spacedman