diagrama de barras agrupado: ordene el eje x y mantenga un ancho de barra constante, en caso de falta de niveles

Aquí está mi guión (ejemplo inspirado enaquí y usando elreorder opción deaquí):

library(ggplot2)
Animals <- read.table(
  header=TRUE, text='Category        Reason Species
1   Decline       Genuine      24
2  Improved       Genuine      16
3  Improved Misclassified      85
4   Decline Misclassified      41
5   Decline     Taxonomic       2
6  Improved     Taxonomic       7
7   Decline       Unclear      10
8  Improved       Unclear     25
9  Improved           Bla     10
10  Decline         Hello     30')

fig <- ggplot(Animals, aes(x=reorder(Animals$Reason, -Animals$Species), y=Species, fill = Category)) + 
  geom_bar(stat="identity", position = "dodge")

Esto proporciona la siguiente gráfica de salida:

Lo que me gustaría es ordenar mi diagrama de barrassolamente con la condición 'Rechazar', y todo el 'Mejorado' no se insertaría en el medio. Esto es lo que me gustaría obtener (después de una edición de svg):

Así que ahora se ordena toda la condición 'Rechazar' y la condición 'Mejorada' aparece después. Además, idealmente, todas las barras deberían tener el mismo ancho, incluso si la condición no se representa para el valor (por ejemplo, "Bla" no tiene valor de "Rechazo").

¿Alguna idea de cómo podría hacer eso sin tener que jugar con editores SVG? ¡Muchas gracias!

Respuestas a la pregunta(4)

Su respuesta a la pregunta