Posição alternativa do geom_text com hjust
Estou plotando um gráfico de barras empilhadas e usogeom_text
para inserir o valor de cada pilha. A dificuldade que estou enfrentando é que algumas pilhas são muito pequenas / estreitas, de modo que o texto de duas pilhas se sobrepõem e, portanto, não é muito legível. Gostaria de ajustar o posicionamento do texto de uma maneira que, por exemplo, a posição do texto alterne entrehjust == 1
ehjust == -1
para cada pilha, para que não haja sobreposições (ou qualquer outro método que resulte em texto legível).
Aqui está um exemplo do que estou fazendo atualmente (umdput
domydf
é fornecido abaixo):
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)
O que eu tentei até agora é:
Usandoposition = position_dodge(width = 0.5)
eposition = position_jitter(h =0.5, w = 0.5)
mas nenhum resultou no que eu estava tentando fazer.
Meu primeiro pensamento foi definirhjust = c(1,-1)
esperando que fosse reciclado e os textos alternassem entrehjust == 1
ehjust == -1
mas resulta na mensagem de erro:
Error: Incompatible lengths for set aesthetics: size, hjust
Eu também tentei definirsize = c(3,3,3,3,3,3,3,3,3), hjust = c(1,-1,1,-1,1,-1,1,-1,1)
mas isso resulta na mesma mensagem de erro.
Eu gostaria de receber alguns conselhos sobre como conseguir isso da maneira certa (e também estou aberto a outras sugestões).
Eu não conseguia descobrir por que odput
não funcionou (também para mim não funcionou), então aqui estão os dados em formato legível:
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