RE: allineamento dei numeri sulle singole barre con ggplot2

Ho la necessità di posizionare le etichette sopra le barre su ggplot. Ho usato il metodo trovato ( QUI ) ma questo non sembra funzionare più dal mio aggiornamento ggplot2 come ora ottengo il messaggio di errore:

Error in continuous_scale(c("y", "ymin", "ymax", "yend", "yintercept", : unused argument(s) (formatter = "percent") 

Come posso tracciare nuovamente i valori numerici sopra le barre quando si utilizza l’esempio:

 df <- structure(list(A = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L), .Label = c("0-50,000", "50,001-250,000", "250,001-Over"), class = "factor"), B = structure(c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), .Label = c("0-50,000", "50,001-250,000", "250,001-Over"), class = "factor"), Freq = c(0.507713884992987, 0.258064516129032, 0.23422159887798, 0.168539325842697, 0.525280898876405, 0.306179775280899, 0.160958904109589, 0.243150684931507, 0.595890410958904)), .Names = c("A", "B", "Freq"), class = "data.frame", row.names = c(NA, -9L)) library(ggplot2) ggplot(data=df, aes(x=A, y=Freq))+ geom_bar(aes(fill=B), position = position_dodge()) + geom_text(aes(label = paste(sprintf("%.1f", Freq*100), "%", sep=""), y = Freq+0.015, x=A), size = 3, position = position_dodge(width=0.9)) + scale_y_continuous(formatter = "percent") + theme_bw() 

Esecuzione di R 2.15 ggplot2 0.9 su una macchina vincente 7

L’errore è dalla chiamata scale_y_continuous . La formattazione delle etichette viene ora gestita dall’argomento delle labels . Vedi la guida alla transizione di ggplot2 0.9.0 per maggiori dettagli.

C’era un altro problema con le etichette che non si allineavano correttamente; Ho risolto ciò aggiungendo un group=B all’estetica per il geom_text ; Non sono del tutto sicuro del perché sia ​​necessario, comunque. Ho anche estratto x=A dall’estetica di geom_text perché non era necessario (sarebbe stato ereditato dalla chiamata ggplot .

 library("ggplot2") library("scales") ggplot(data=df, aes(x=A, y=Freq))+ geom_bar(aes(fill=B), position = position_dodge()) + geom_text(aes(label = paste(sprintf("%.1f", Freq*100), "%", sep=""), y = Freq+0.015, group=B), size = 3, position = position_dodge(width=0.9)) + scale_y_continuous(labels = percent) + theme_bw() 

inserisci la descrizione dell'immagine qui