Es sieht so aus, dass Sie sie in irgendeiner Form der Reihenfolge, basierend auf dem 50% -Wert jedes Boxplots, plotten wollen? Unter einem anderen Datenrahmen als Beispiel:
temp <- structure(list(
Grade = c("U","G", "F", "E", "D", "C", "B", "A", "A*"),
n = c(20L, 13L, 4L, 13L, 36L, 94L, 28L, 50L, 27L)),
.Names = c("Grade", "n"),
class = c("tbl_df", "data.frame"),
row.names = c(NA, -9L))
Wenn wir das Grundstück, wir, dass die Etiketten durcheinander sind sehen (A vor A * kommt).
library(ggplot2)
ggplot(temp) +
geom_bar(stat="identity", aes(x=Grade, y=n))
Wir könnten dies manuell bestellen, wie oben gezeigt, oder wir könnten entscheiden die Noten in der Reihenfolge der Anzahl der Schüler zu zeichnen jede Klasse zu bekommen. Dies kann auch manuell durchgeführt werden, aber es wäre besser, wenn wir diese automatisieren könnte:
Zuerst haben wir die Datenrahmen bestellen:
library(dplyr)
temp <- temp %>% arrange(n)
Dann ändern wir die Ebenen innerhalb der Grade
Spalte die Reihenfolge der repräsentieren Daten
Wenn Sie denselben Grafikbefehl wie oben gezeigt ausführen, erhalten Sie Daten mit einer anders geordneten X-Achse.
Weitere Diskussion hier: http://stackoverflow.com/questions/11587111/setting-levels-when-creating-a-factor-vs-levels – harkmug