Ich versuche, die prozentuale Häufigkeit jedes Balkens in meinem gruppierten Balkendiagramm auszurichten. Im Moment sieht mein Diagramm wie folgt aus:Wie richtet man Text in einem gruppierten Balkendiagramm in ggplot2 aus?
Hier ist der Code auch:
ggplot(graph_data, aes(x, Freq)) +
geom_bar(aes(fill = Pref), position = 'dodge', stat = 'identity') +
geom_text(aes(label = sprintf("%.0f%%", round(Freq/sum(Freq) * 100))),
hjust = -0.25) +
labs(list(x = attr(graph_data, 'seg_label'),
y = 'Frequency',
title = paste('Q:', attr(graph_data, 'question')))) +
scale_y_continuous(limits = c(0, 1.2 * max(graph_data$Freq))) +
guides(fill = F) +
coord_flip() +
annotate("text", x = Inf, y = Inf,
label = paste0("N = ", sum(graph_data$Freq)),
hjust = 1.5, vjust = 1.5)
Ich denke, das Problem kann auf diesem Code-Snippet gelöst werden, aber ich bin nicht sicher, wie:
geom_text(aes(label = sprintf("%.0f%%", round(Freq/sum(Freq) * 100))), hjust = -0.25)
Jede Hilfe würde sehr geschätzt werden!
Edit: Hier ist ein Beispiel der Struktur meiner Daten auch:
df <- data.frame(x = rep(c('1824', '2534', '3544'), 3),
Pref = rep(c('low', 'neutral', 'high')),
Freq = 1:9 * 10)
Mögliches Duplikat [Position geom \ _text auf ausgewichen BarPlot] (http://stackoverflow.com/questions/6017460/position-geom-text-on-dodged-barplot) – aosmith
Vielen Dank für Ihre Antwort . Ich denke, das Feature in diesem Post ist abgeschrieben - ich konnte es nicht mit irgendwelchen Beispielen, die ich ausprobiert habe, wiederherstellen. Der Beitrag ist ungefähr 5 Jahre alt, also denke ich, es ist eine wahrscheinliche Erklärung, wenn ich keinen Fehler gemacht habe. – nev
Problem behoben! Der ästhetische Parameter 'fill' wurde nicht in die Funktion geom_text übergeben. Ich habe meine ganze Ästhetik in die ursprüngliche ggplot-Deklaration aufgenommen, um sie zu beheben, wie dies 'ggplot (graph_data, aes (x = x, y = Freq, fill = Pref) ' – nev