Sto stampando un grafico a barre in pila e utilizzo geom_text
per inserire il valore di ogni pila. La difficoltà che sto affrontando è che alcuni stack sono molto piccoli/stretti, quindi il testo di due stack si sovrappone e quindi non è molto leggibile. Vorrei regolare il posizionamento del testo in modo che, ad esempio, la posizione del testo si alterni tra hjust == 1
e hjust == -1
per ogni stack, in modo che non vi siano sovrapposizioni (o qualsiasi altro metodo che risulterà in testo leggibile).Posizione geom_text alternativa con hjust
Ecco un esempio di quello che sto facendo attualmente (un dput
di mydf
si riportano di seguito):
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)
Quello che ho provato finora è:
Utilizzando position = position_dodge(width = 0.5)
e position = position_jitter(h =0.5, w = 0.5)
ma nessuno ha portato quello che stavo cercando di fare.
Il mio primo pensiero è stato quello di definire hjust = c(1,-1)
sperando che sarebbe stato riciclato e testi sarebbe alternare hjust == 1
e hjust == -1
ma risulta nel messaggio di errore:
Error: Incompatible lengths for set aesthetics: size, hjust
Ho provato anche la definizione size = c(3,3,3,3,3,3,3,3,3), hjust = c(1,-1,1,-1,1,-1,1,-1,1)
ma questo si traduce nella stesso messaggio di errore.
Gradirei qualche consiglio su come ottenere ciò nel modo giusto (e sono aperto anche ad altri suggerimenti).
non riuscivo a capire perché la dput
non ha funzionato (anche per me non ha fatto), quindi ecco i dati in formato leggibile:
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
non riesco a caricare il 'dput' per qualche motivo –
@DavidArenburg , Non so cosa fosse sbagliato, spero non ti dispiaccia usare l'altro formato. –