factores ordenados en el gráfico de barras ggplot2

Tengo un marco de datos con (para simplificar) jueces, películas y calificaciones (las calificaciones están en una escala de 1 a 5 estrellas):

d = data.frame(judge=c("alice","bob","alice"), movie=c("toy story", "inception", "inception"), rating=c(1,3,5))

Quiero crear un gráfico de barras donde el eje x es el número de estrellas y la altura de cada barra es el número de clasificaciones con esa estrella.

Si lo hago

ggplot(d, aes(rating)) + geom_bar()

esto funciona bien, excepto que las barras no están centradas sobre cada clasificación y el ancho de cada barra no es ideal.

Si lo hago

ggplot(d, aes(factor(rating))) + geom_bar()

el orden del número de estrellas se desordena en el eje x. (Al menos en mi Mac; por alguna razón, el pedido predeterminado funciona en una máquina con Windows). Esto es lo que parece:

Lo intenté

ggplot(d, aes(factor(rating, ordered=T, levels=-3:3))) + geom_bar()

Pero esto no parece ayudar.

¿Cómo puedo hacer que mi gráfico de barras se vea como la imagen de arriba, pero con el orden correcto en el eje x?

Respuestas a la pregunta(1)

Su respuesta a la pregunta