2017-10-31 2 views
1

Wenn ich df mit dem unten stehenden Code plotte, kann ich das n für jede Spalte über die Spalte selbst setzen, as seen in this example plot. Ich möchte auch den Prozentsatz für jede Spalte im Etikett angeben. Das ist der Prozentsatz der Gesamtsumme, die die Spalte ausmacht. So würde zum Beispiel das Etikett in der ersten Spalte 127(42.9%) anstatt nur 127 lesen. Wie könnte ich das tun?Sowohl n als auch Prozentzeichen auf geom_col, ggplot2

df <- structure(list(Letter = structure(1:7, 
     .Label = c("A", "B", "C", "D", "E", "F", "G"), 
     class = "factor"), Freq = c(127L, 101L, 24L, 19L, 3L, 0L, 22L)), 
     .Names = c("Letter", "Freq"), 
     row.names = c(NA, -7L), 
     class = "data.frame") 

ggplot(df, aes(Letter, Freq, label = Freq)) + 
    geom_col() + 
    geom_text(size = 3, position = position_dodge(width = 1), vjust = -0.25) 

Antwort

2

Erstellen Sie einfach den Text, den Sie als Bezeichnung verwenden möchten.

df$pct = df$Freq/sum(df$Freq) * 100 
df$label = sprintf("%s (%s%%)", df$Freq, round(df$pct, 1)) 

ggplot(df, aes(Letter, Freq, label = label)) + 
    geom_col() + 
    geom_text(size = 3, position = position_dodge(width = 1), vjust = -0.25) 

enter image description here

Verwandte Themen