Reverse stacked bar bestellen
Ich bin erstellen Sie ein gestapeltes Säulendiagramm mit ggplot wie diese:
plot_df <- df[!is.na(df$levels), ]
ggplot(plot_df, aes(group)) + geom_bar(aes(fill = levels), position = "fill")
Gibt mir so etwas wie dieses:
Wie vertausche ich die Reihenfolge der gestapelten Balken selbst, so dass die Ebene 1 ist an der Unterseite, und level-5 ist oben in der Leiste?
Ich habe gesehen, eine Reihe von Fragen auf (z.B. Wie die Kontrolle der Bestellung von gestapelten Säulendiagramm mit Identität auf ggplot2) und die Allgemeine Lösung scheint es zu sein, die Reihenfolge der dataframe durch, dass die Ebene, dass das, was ggplot ist mit dem bestimmen der Reihenfolge
Also habe ich versucht, die Neuordnung mit dplyr:
plot_df <- df[!is.na(df$levels), ] %>% arrange(desc(levels))
Aber der plot kommt dasselbe raus. Es scheint auch nicht zu einen Unterschied machen, ob ich ordne nach aufsteigender oder absteigender Reihenfolge
Hier ist eine reproduzierbare Beispiel:
group <- c(1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4, 1,2,3,4)
levels <- c("1","1","1","1","2","2","2","2","3","3","3","3","4","4","4","4","5","5","5","5","1","1","1","1")
plot_df <- data.frame(group, levels)
ggplot(plot_df, aes(group)) + geom_bar(aes(fill = levels), position = "fill")
ja, ich habe auch versucht, die änderung der Faktor Ebene, um mit
levels(plot_df$levels) <- c("1", "2", "3", "4", "5")
(und die umgekehrte Reihenfolge), aber es ändert nichts an der Grafik, umAuch Hinzugefügt ein Beispiel der Daten
plot_df %>% mutate(levels = factor(levels, levels = 5:1)) %>% ggplot(aes(group, fill = levels)) + geom_bar(position = "fill")
oder nur ggplot(plot_df, aes(group)) + geom_bar(aes(fill = levels), position = position_fill(reverse = TRUE))
InformationsquelleAutor Simon | 2017-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die release notes von
ggplot2
version 2.2.0 Stapeln bars vorschlagen:Dies ist die ursprünglichen plot:
Oder mit
position_fill(reverse = TRUE)
wie vorgeschlagen von alistaire in seinem Kommentar:Beachten Sie, dass die Ebenen (Farben) in der Legende ist nicht in der gleichen Reihenfolge wie in der gestapelten Balken.
InformationsquelleAutor Uwe