2012-04-24 17 views
14

Sto provando a tracciare Google map che viene interrogato usando il pacchetto RgoogleMaps e combinalo con ggplot. In definitiva, voglio mostrare la popolazione totale usando geom_point, in qualche modo simile alla foto qui sotto, ma sto cercando di concentrarmi sulla regione di Montgomery a causa della sovraesposizione.Tracciare google map con ggplot in R

Sono frustrato perché non riesco a tracciare la mia mappa interrogata in R. Ho provato un paio di pacchetti come read.jpeg e png ma non ha funzionato.

codici R:

#query google map 
al1 <- GetMap(center=c(32.362563,-86.304474), zoom=11, destfile = "al2.jpeg", 
     format="jpg",maptype="roadmap") 

#load only specific states 
alabama <- subset(all_states, region %in% c("alabama")) 

#population 
p1 <- ggplot() 
p1 <- p1 + geom_polygon(data=alabama, 
     aes(x=long, y=lat, group=group), colour="white", fill="grey10") 
p1 <- p1 + geom_point(data=quote, aes(x=IntPtLon, y=IntPtLat, size=TotPop, 
     color=TotPop),colour="coral1") + scale_size(name="Total Pop") 

enter image description here

EDIT:

Ecco il mio risultato di massima. Voglio ancora:

  • Modificare la scala della dimensione dei punti perché sembrano piuttosto piccoli sulla mappa.
  • Rende i punti trasparenti o non pieni in modo che la mappa sia ancora visibile.

enter image description here

al1 <- get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11, maptype = 'terrain') 
al1MAP <- ggmap(al1)+ geom_point(data=quote_mgm, aes(x=IntPtLon, y=IntPtLat, size=TotPop)) 
+4

si potrebbe desiderare di controllare i pacchetti ggmap e OpenStreetMap, entrambi i quali sostengono raster ggplot2 tramando –

+3

Ecco un bel esempio dal wiki che potrebbe essere utile per controlla: https://github.com/hadley/ggplot2/wiki/Crime-in-Downtown-Houston%2C-Texas-%3A-Combining-ggplot2-and-Google-Maps –

+0

aha! Ho appena trovato questo sito Web e ottenuto la mia risposta. Il rovescio della medaglia è che ci vuole un po 'di tempo per la trama, quindi controllerò ggmap e OSM. Grazie a tutti! – Ken

risposta

24

E 'questo quello che stai dopo. Utilizza il pacchetto ggmap, che semplifica il processo. Vedere ?get_map e ?ggmap per ulteriori opzioni. Una risorsa eccellente è disponibile in The R Journal

library(ggmap) 
al1 = get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11, maptype = 'roadmap') 
al1MAP = ggmap(al1) 
al1MAP 

enter image description here

+0

Sì, oltre a questo, voglio tracciare punti sulla parte superiore di questa mappa (magari usando geom_point) ma allo stesso tempo voglio renderlo visivamente accattivante. Non voglio che i miei punti nascondano/coprano le informazioni della mappa esistente. Qualche idea? – Ken

+0

rendere i punti semitrasparenti? –

+0

È possibile aggiungere ulteriori layer a al1Map usando le normali ge ggplot2. Quindi per aggiungere punti, allora qualcosa come 'al1MAP + geom_point (data = data, aes (x = x, y = y))' farà. Per quanto riguarda il non voler coprire le informazioni sulla mappa esistente, non posso aiutarti. Forse puoi provare diversi stili di mappa, per trovare qualcosa che contenga meno dettagli. –