2010-03-11 5 views

Antwort

5

qplot(factor(cyl), data=mtcars, geom="bar", fill=factor(gear), order = -gear)

+0

Dies ergibt 'Fehler in eval (expr, envir, enclos): Objekt' Zahnrad 'nicht gefunden' –

5
qplot(factor(cyl), data=mtcars, geom='bar', fill=factor(gear, level=5:3)) 
+1

Sie haben es, aber es ist bequemer, neue 'dat.frame' zu ​​definieren und dann' qplot' auf 'transform()' ed eins auszuführen, wodurch saubere Legende und Achse: 'newone aL3xa

1

Um @ xiechao-Lösung (@ Hadleys funktioniert nicht in neueste ggplot) zu verallgemeinern, können Sie die Faktor Aufträge umkehren, dies zu erreichen:

library(ggplot2) 
data(mtcars) 
mtcars$gear <- factor(mtcars$gear) # First make factor with default levels 
mtcars$gear <- factor(mtcars$gear, levels=rev(levels(mtcars$gear))) 
qplot(cyl, data=mtcars, geom="bar", fill=gear) 
# Or with ggplot 
ggplot(mtcars, aes(factor(cyl), fill=gear)) + geom_bar() 

enter image description here