¿Cómo reordenar los elementos en una leyenda?

Estoy tratando de cambiar el orden en que aparecen los elementos de la leyenda. He pasado alrededor de una hora en esto, sin resultados.

Aquí hay un ejemplo de configuración:

library(ggplot2)
set.seed(0)
d <- data.frame(x = runif(3), y = runif(3), a = c('1', '3', '10'))

Y aquí está una de las muchas cosas que he probado:

ggplot(d, aes(x = x, y = y)) + 
    geom_point(size=7, aes(color = a, order = as.numeric(a)))

(Mi ingenua esperanza, por supuesto, era que los elementos de la leyenda se mostraran en el orden numérico: 1, 3, 10.)

Respuestas a la pregunta(2)

Su respuesta a la pregunta