ggplot2: Barplot nebeneinander, wobei ein Balken gestapelt ist und der andere nicht

Ich versuche, ein Balkendiagramm zu erstellen, in dem für jede Kategorie zwei Balken (nebeneinander) dargestellt werden: einer für die "Summe", der andere ist nach Untergruppen gestapelt. Zum Beispiel werden im folgenden Datenrahmen 'Namen' auf der x-Achse angezeigt. Für jede Kategorie in 'names' repräsentiert ein Balken den Wert von 'total', der andere ist ein gestapelter Balken, der Werte von 'aaa', 'bbb' und 'ccc' repräsentiert. Ich habe es geschafft, ein "Back-to-Back" -Diagramm zu erstellen, aber ich weiß nicht, wie ich die "Dodge" -Position auf diesen Fall anwenden kann, um die Balken nebeneinander zu platzieren.

df = data.frame(names = rep(LETTERS[1:3], each=4), 
                num = c(rep(c("aaa","bbb","ccc","total"), 3)), 
                values = c(1,2,3,7,2,2,5,10,3,4,2,9)))
p = ggplot(df, aes(x=factor(names))) + 
    geom_bar(data=subset(df,num=="total"), aes(y=values), stat="identity",width=.5) +
    geom_bar(data=subset(df,num!="total"), aes(y=-values,fill=factor(num)), stat="identity",width=.5) 
print(p)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage