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?