Ich glaube nicht, dass ich wirklich Ihr „ohne einen neuen Datenrahmen“ Anforderung erfüllen können, aber Sie können im laufenden Betrieb des neuen Datenrahmen erstellen:
ggplot(transform(iris,
Species=factor(Species,levels=c("virginica","setosa","versicolor")))) +
geom_histogram(aes(Petal.Width))+ facet_grid(Species~.)
ich es schön wäre zustimmen, wenn es gab eine andere Möglichkeit, dies zu kontrollieren, aber ggplot
ist schon ein ziemlich starker (und kompliziert) Motor ...
Beachten Sie, dass die Reihenfolge der (1) die Zeilen in dem Datensatz in der Größenordnung von unabhängiger (2) die Ebenen des Faktors. # 2 ist was factor(...,levels=...)
ändert, und was ggplot
betrachtet, um die Reihenfolge der Facetten zu bestimmen. Doing # 1 (Sortieren der Zeilen des Datenrahmens in einer bestimmten Reihenfolge) ist eine interessante Herausforderung. Ich glaube, ich würde dies tatsächlich erreichen, indem zwei ersten tun # und dann order()
oder arrange()
Verwendung nach den numerischen Werten des Faktors zu sortieren:
neworder <- c("virginica","setosa","versicolor")
library(plyr) ## or dplyr (transform -> mutate)
iris2 <- arrange(transform(iris,
Species=factor(Species,levels=neworder)),Species)
Ich kann nicht sofort eine schnelle Art und Weise sieht diesen zu tun ohne Ändern der Reihenfolge der Faktorstufen (Sie könnten es tun und dann die Reihenfolge der Faktorstufen entsprechend zurücksetzen).
Im Allgemeinen basieren Funktionen in R, die von der Reihenfolge der Ebenen einer kategorialen Variablen abhängen, auf der Reihenfolge der Faktorstufen und nicht auf der Reihenfolge der Zeilen im Datensatz. Die obige Antwort gilt allgemeiner.
vielleicht 'facet_grid (Faktor (Art, levels = c (" virginica "," setosa "," versicolor ")). [oops, funktioniert nicht] –
Wie Ben bemerkt, ist die Art und Weise, die Reihenfolge von im Grunde alles in ggplot zu steuern (Balken in Balkenplots, Facetten usw.), einen Faktor zu verwenden und die Reihenfolge der Ebenen anzupassen. – joran
... oder das: http://Stackoverflow.com/q/3311901/324364 – joran