poligono para pairs librerias graficos grafico graficas graficar grafica ejemplos cuadricula animados r ggplot2

para - poligono en r



Coloque un borde alrededor de los puntos (3)

Me gustaría colocar un borde negro alrededor de los puntos en un diagrama de dispersión que se llenan según los datos, usando ggplot2. Además, me gustaría evitar tener una entrada de leyenda para el borde negro, ya que estará en cada punto. Básicamente estoy buscando esta trama, pero con un borde negro alrededor de cada punto.

df <- data.frame(id=runif(12), x=1:12, y=runif(12)) ggplot(df, aes(x=x, y=y))+geom_point(aes(colour=id), size=12)

Como beneficio adicional, me gustaría no tener una entrada de leyenda para el borde negro. Mi mejor intento es:

df <- data.frame(id=runif(12), x=1:12, y=runif(12)) ggplot(df, aes(x=x, y=y))+geom_point(aes(fill=id, colour="black"), size=12)

Lo que da:

No entiendo por qué eso no me da lo que quiero, y peor (por mi educación en ggplot2) ¡No entiendo por qué no parece asignar color de relleno a nada! ¿Alguna ayuda?

Tal vez si puedo obtener correctamente el esquema y el mapeo completo, puedo usar un truco como el del último conjunto de figuras para desactivar la leyenda.


Es un poco oscuro, pero tienes que usar pch > 20 (creo que 21:25 son las formas relevantes): fill controla el anillo colo interior (u) y el colour controla la línea alrededor del borde.

(g0 <- ggplot(df, aes(x=x, y=y))+geom_point(aes(fill=id), colour="black",pch=21, size=5))

actualización : con versiones recientes de ggplot2 (p. ej. 2.0.0, no sé cuánto tiempo atrás) la guía predeterminada es una barra de colores. Se necesitan g0 + guides(fill="legend") para obtener una leyenda con puntos como en el diagrama que se muestra aquí. Los saltos predeterminados también han cambiado: para replicar exactamente este gráfico, necesita g0 + scale_fill_continuous(guide="legend",breaks=seq(0.2,0.8,by=0.1)) ...

Relacionados pero no idénticos: ¿cómo crear una trama con puntos personalizados en R? . La respuesta aceptada a esa pregunta usa la técnica de estratificación que se muestra en la respuesta de @ joran, pero (IMO) la respuesta de @jbaums, que usa la técnica pch=21 , es superior. (Creo que la shape=21 es una alternativa, y tal vez incluso preferida, a pch=21 ).

PD: debes poner colour fuera del mapeo (bit aes ) si quieres establecerlo de manera absoluta y no de acuerdo con el valor de alguna variable ...


La primera pregunta es un truco:

ggplot(df, aes(x=x, y=y)) + geom_point(aes(colour=id), size=12) + geom_point(shape = 1,size = 12,colour = "black")

Y, oh, no quieres una leyenda extra. Creo que lo hace entonces:


Tenía el mismo problema, pero también necesitaba una solución que permitiera la inestabilidad. Para esto, necesita utilizar un pch que sea una forma rellena con un borde y una función grid.edit del paquete gridExtra. Usando tu ejemplo:

df <- data.frame(id=runif(12), x=1:12, y=runif(12)) ggplot(df, aes(x=x, y=y, fill=id))+geom_point(pch=21, colour="Black", size=12) library(gridExtra) grid.edit("geom_point.points", grep = TRUE, gp = gpar(lwd = 3))