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