¿Controlando el orden de los puntos en ggplot2 en R?

Supongamos que estoy trazando un gráfico de dispersión densa en ggplot2 en R donde cada punto podría estar etiquetado con un color diferente:

df <- data.frame(x=rnorm(500))
df$y = rnorm(500)*0.1 + df$x
df$label <- c("a")
df$label[50] <- "point"
df$size <- 2
ggplot(df) + geom_point(aes(x=x, y=y, color=label, size=size))

Cuando hago esto, el punto de dispersión etiquetado como "punto" (verde) se traza sobre los puntos rojos que tienen la etiqueta "a". ¿Qué controla este ordenamiento de z en ggplot, es decir, qué controla qué punto está encima de cuál? Por ejemplo, ¿qué pasaría si quisiera que todos los puntos "a" estuvieran encima de todos los puntos etiquetados como "punto" (lo que significa que a veces ocultan parcial o totalmente ese punto)? ¿Depende esto del orden alfanumérico de las etiquetas? Me gustaría encontrar una solución que se pueda traducir fácilmente a rpy2. Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta