Sto cercando un modo per etichettare un grafico a barre in pila con le percentuali mentre l'asse y mostra il conteggio originale (utilizzando ggplot). Ecco una MWE per la trama senza etichette:R: grafico a barre in pila ggplot con conteggi sull'asse y ma percentuale come etichetta
library(ggplot2)
df <- as.data.frame(matrix(nrow = 7, ncol= 3,
data = c("ID1", "ID2", "ID3", "ID4", "ID5", "ID6", "ID7",
"north", "north", "north", "north", "south", "south", "south",
"A", "B", "B", "C", "A", "A", "C"),
byrow = FALSE))
colnames(df) <- c("ID", "region", "species")
p <- ggplot(df, aes(x = region, fill = species))
p + geom_bar()
Ho una tabella molto più grande e R conta molto bene le diverse specie per ogni regione. Ora, vorrei mostrare entrambi, il valore di conteggio originale (preferibilmente sull'asse y) e la percentuale (come etichetta) per confrontare le proporzioni di specie tra le regioni.
ho provato molte cose usando geom_text()
ma credo che la differenza principale ad altre domande (e.g. this one) è che
- non ho una colonna separata per valori di y (sono solo i conti di specie diverse per regione) e
- Ho bisogno delle etichette per regione per riassumere fino al 100% (dal momento che sono considerate rappresentare popolazioni separate), non tutte le etichette dell'intero grafico.
Qualsiasi aiuto è molto apprezzato !!
Quando stai facendo qualcosa di non standard, di solito devi calcolare i numeri da solo. Potrebbe * essere * possibile farlo all'interno di ggplot, ma non sarà semplice. Meglio usare le funzioni create per la manipolazione dei dati, quindi provare a manipolare i dati all'interno di ggplot. – Gregor