Posición alternativa de geom_text con hjust

Estoy trazando un gráfico de barras apiladas y usogeom_text para insertar el valor de cada pila. La dificultad que enfrento es que algunas pilas son muy pequeñas / estrechas, por lo que el texto de dos pilas se superponen entre sí y, por lo tanto, no es muy legible. Me gustaría ajustar la posición del texto de una manera que, por ejemplo, la posición del texto alterna entrehjust == 1 yhjust == -1 para cada pila, de modo que no habrá superposiciones (o cualquier otro método que resulte en texto legible).

Aquí hay un ejemplo de lo que estoy haciendo actualmente (undput demydf se proporciona a continuación):

library(ggplot2)

ggplot(mydf, aes(x=variable, y = value, fill = Category)) + 
  geom_bar(stat="identity") +
  geom_text(aes(label = value, y = pos-(value/2)), size = 3) 

Lo que intenté hasta ahora es:

Utilizandoposition = position_dodge(width = 0.5) yposition = position_jitter(h =0.5, w = 0.5) pero ninguno resultó en lo que estaba tratando de hacer.

Mi primer pensamiento fue definirhjust = c(1,-1) con la esperanza de que fuera reciclado y los textos alternaran entrehjust == 1 yhjust == -1 pero da como resultado el mensaje de error:

Error: Incompatible lengths for set aesthetics: size, hjust

También intenté definirsize = c(3,3,3,3,3,3,3,3,3), hjust = c(1,-1,1,-1,1,-1,1,-1,1) pero esto da como resultado el mismo mensaje de error.

Agradecería algunos consejos sobre cómo lograr esto de la manera correcta (y estoy abierto a otras sugerencias también).

No pude entender por quédput no funcionó (también para mí no), así que aquí están los datos en formato legible:

    Category variable value   pos maxpos
1        AX       WW  47.8  47.8  184.1
2        AY       WW   5.6  53.4  184.1
3        AZ       WW  15.8  69.2  184.1
4        BX       WW  31.4 100.6  184.1
5        BY       WW  11.7 112.3  184.1
6        BZ       WW  10.7 123.0  184.1
7        CX       WW   2.2 125.2  184.1
8        CY       WW  21.4 146.6  184.1
9        CZ       WW  37.5 184.1  184.1
10       AX       SM  39.8  39.8  148.6
11       AY       SM   2.9  42.7  148.6
12       AZ       SM  13.2  55.9  148.6
13       BX       SM  22.7  78.6  148.6
14       BY       SM   7.3  85.9  148.6
15       BZ       SM   8.9  94.8  148.6
16       CX       SM   1.6  96.4  148.6
17       CY       SM  17.3 113.7  148.6
18       CZ       SM  34.9 148.6  148.6
19       AX     AsIs 156.9 156.9  519.0
20       AY     AsIs  13.1 170.0  519.0
21       AZ     AsIs  70.5 240.5  519.0
22       BX     AsIs  72.6 313.1  519.0
23       BY     AsIs  30.7 343.8  519.0
24       BZ     AsIs  35.6 379.4  519.0
25       CX     AsIs   5.2 384.6  519.0
26       CY     AsIs  44.8 429.4  519.0
27       CZ     AsIs  89.6 519.0  519.0

Respuestas a la pregunta(1)

Su respuesta a la pregunta