2011-12-21 10 views
12

Estoy intentando trazar un diagrama de dispersión grande que varía a lo largo de una gran cantidad de dimensiones.Modificar la forma de un subconjunto de puntos con ggplot2

Aquí es mi parcela de partida:

p <- ggplot(mtcars, aes(wt, mpg, shape=cyl, colour=gear, size=carb)) + 
     geom_point() 

Sample plot with multiple variables

Utilizando el conjunto de datos mtcars, simplemente estoy incluyendo diversas formas, colores y tamaños. Ahora lo que me gustaría agregar a esto es alguna marca distintiva en torno a todos los puntos con carb == 8. Por ejemplo, agregue un gran círculo negro alrededor de estos puntos.

Haciendo

p + geom_point() + geom_point(colour="black", shape=1, size=5) 

es cerrar en que se pone los círculos como yo quiero, sino todos los puntos obtienen círculos, quiero limitar a este lugar sólo algunos de los puntos.

Agradecería cualquier sugerencia para este problema.

Respuesta

21

En lugar de poner inicialmente sus variables dentro de la función ggplot, intente asignar sus variables individualmente para cada capa que agregue.

p <- ggplot(data = mtcars)+ 
geom_point(aes(wt, mpg, shape=as.factor(cyl), colour=gear, size=carb))+ 
geom_point(aes(wt[carb==8], mpg[carb==8]), colour="black", shape=1, size=7) 

img

+5

buena. Personalmente, tiendo a pasar el subconjunto deseado de los datos originales al geom, como 'geom_point (data = subconjunto (mtcars, carb == 8), aes (...))', y dado el código OP esa posibilidad probablemente vale la pena señalarlo. – joran

+0

¡Impresionante! Eso es exactamente lo que estaba buscando, y es súper simple. ¡Gracias! – fozziethebeat

+1

Como una pregunta, ¿cómo puedo editar la leyenda para indicar que los círculos negros están alrededor de carbohidratos = 8? – fozziethebeat

Cuestiones relacionadas