2012-04-26 26 views
7

Esta ecuación lleva de mi previous question. Quiero trazar puntos que representen la población total y hasta ahora usé scale_size para hacer el tamaño de los puntos en relación con su población total.En R, ¿cómo hacer que los puntos sean transparentes al usar scale_size en ggplot2?

Pero, quiero hacer estos puntos transparentes porque los puntos están cubriendo el mapa. Sin embargo, estoy abierto a otras opciones siempre que el mensaje que estoy tratando de enviar esté claro. 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

Una alternativa puede ser para interpolar los puntos de población utilizando, por ejemplo, interpolación ponderada por distancia inversa ('idw' en' gstat'), kriging (por ejemplo, 'automap'), o algún método kernel (es decir, densidad 2d). –

Respuesta

10

Para usar una transparencia uniforme, sólo tiene que añadir alpha = 0.3-geom_point. alpha puede estar entre 0 y 1, dependiendo de la cantidad de transparencia que desee. Si desea que su transparencia dependa de una variable, solo agregue alpha = var_name al argumento mapping (el bit aes), donde var_name es el nombre de la columna de la variable que desea usar para la transparencia.

+1

Dang que Paul es rápido, lo vio y fue a publicar y Bam fue respondido. +1 –

+0

Hahah, primero escribí la primera parte de la respuesta, que editó para agregar más detalles. Este tipo de preguntas son respondidas demasiado rápido, así que necesitaba ser rápido :). –

+0

Wow, respondiste tan rápido que tengo que esperar diez minutos para aceptar tu respuesta. ¡Muchas gracias! – Ken

5

Otra alternativa es usar puntos huecos, p. geom_point(shape = 21). Eso haría que el mapa se encuentre directamente debajo del punto, al mismo tiempo que hace que los bordes de los puntos sean claramente visibles.

(Por desgracia, mi empleador bloquea el API Google, así que no puedo publicar el resultado)

Cuestiones relacionadas