2012-04-26 14 views
7

Questa equazione porta dal mio previous question. Voglio tracciare punti che rappresentano la popolazione totale e finora ho usato scale_size per fare la dimensione dei punti rispetto alla sua popolazione totale.In R, come rendere i punti trasparenti mentre si utilizza scale_size in ggplot2?

Ma, voglio rendere questi punti trasparenti perché i punti coprono la mappa. Sono, tuttavia, aperto ad altre opzioni fintanto che il messaggio che sto tentando di inviare è chiaro. enter image description here

# load required packages 
library(ggmap) 
library(ggplot2) 

# query map of Birmingham, AL 
al1 <- get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11, 
     source = "osm", maptype = 'terrain') 

al1MAP <- ggmap(al1)+ geom_point(data=quote_bmh, 
      aes(x=IntPtLon, y=IntPtLat, size=TotPop, colour="gold2"), 
      colour="gold2") + scale_size(range=c(0,15)) 
+3

Un'alternativa può essere quella di interpolare i punti di popolazione che utilizza per esempio interpolazione a distanza inversa ('idw' in' gstat'), kriging (ad esempio 'automap'), o qualche metodo kernel (cioè densità 2d). –

risposta

10

Per utilizzare un lucido uniforme, è sufficiente aggiungere alpha = 0.3-geom_point. alpha può essere compreso tra 0 e 1, a seconda della quantità di trasparenza desiderata. Se si desidera che la trasparenza dipenda da una variabile, è sufficiente aggiungere alpha = var_name all'argomento mapping (il numero aes), dove var_name è il nome della colonna della variabile che si desidera utilizzare per la trasparenza.

+1

Dang che Paul è veloce, l'ha visto ed è andato a postare e bam ha risposto. +1 –

+0

Hahah, ho prima digitato la prima parte della risposta, che modificata per aggiungere ulteriori dettagli. Questo tipo di domande ha una risposta troppo veloce, quindi ho dovuto essere veloce :). –

+0

Wow, hai risposto così velocemente che devo aspettare dieci minuti per accettare la tua risposta. Molte grazie! – Ken

5

Un'altra alternativa consiste nell'utilizzare punti cavi, ad es. geom_point(shape = 21). Ciò renderebbe la mappa direttamente sotto il punto abbastanza leggibile mentre rende distintamente visibili i bordi dei punti.

(Purtroppo, i miei blocchi datore di lavoro l'API di Google, quindi non posso postare il risultato)

Problemi correlati