tutorial - superponer graficas en r ggplot
Cómo dibujar puntos llenos a medias en R(preferiblemente usando ggplot) (1)
Aquí hay un par de hacks que se acercan a lo que usted solicitó:
Primero trazamos con dos símbolos unicode para semicírculos superior e inferior. Estos tienen la ventaja de que el centro de cada marcador de puntos es el centro mutuo del círculo definido por cada semicírculo, pero la desventaja es que cada uno de ellos incluye el borde de la otra mitad del círculo. Como resultado, el contorno de uno de los círculos cubre el borde del otro. Puede "cubrir" el borde del círculo dibujando un círculo sin rellenar sobre él, pero necesita dos círculos sin llenar de tamaños ligeramente diferentes para cubrir completamente el círculo de contorno. Además, si se superponen algunos puntos, verá partes de estos círculos. (Idealmente, habría símbolos semicirculares llenos de unicode sin un borde para el cual el centro geográfico del marcador y el centro del (semi) círculo coinciden, pero no he podido encontrar ninguno).
library(ggplot2)
p1 = ggplot(mtcars, aes(wt, mpg)) +
geom_point(shape="/u25D2", colour="red", size=3) +
geom_point(shape="/u25D3", colour="blue", size=3) +
geom_point(shape=1, colour="white", size=3.05) +
geom_point(shape=1, colour="white", size=2.8) +
theme_bw()
A continuación, trazamos con dos símbolos unicode para semicírculos sin contorno para la otra mitad del círculo (solo pude encontrar uno al lado del otro en lugar de símbolos superiores / inferiores). Pero estos tienen la desventaja de que el centro del marcador es el centro geográfico del marcador, mientras que el círculo está desplazado del centro del marcador. Como resultado, debe desplazar los dos círculos a mano para que se alineen uno contra el otro.
p2 = ggplot(mtcars) +
geom_point(aes(wt-0.027, mpg), shape="/u25D6", colour="red", size=3) +
geom_point(aes(wt+0.027, mpg), shape="/u25D7", colour="blue", size=3) +
theme_bw()
En los trazados anteriores, he codificado los colores, pero también puedes asignarlos a otras variables.
Para que los símbolos Unicode se muestren correctamente, utilicé el dispositivo PDF Cairo con la fuente Symbola.
cairo_pdf("p1.pdf", family="Symbola", 4,4)
p1
dev.off()
cairo_pdf("p2.pdf", family="Symbola", 4,4)
p2
dev.off()
Así es como se ven las tramas:
Me preguntaba si es posible completar puntos con varios colores. Por ejemplo, en un diagrama de dispersión, me gustaría ver que para cada punto la mitad superior está llena de cierto color, mientras que la mitad inferior está llena de uno diferente. Si es posible, también me gustaría hacer los pares de colores de relleno en cada mapeo de puntos de algunos datos subyacentes (por ejemplo, ciertos tipos de emparejamiento para si los datos toman valor de x). Hasta ahora he pensado en trazar dos veces con dos eclipses y llenarlos por separado, pero no hubo suerte. Realmente apreciaría si alguien pudiera ayudar.
¡Gracias!