2010-03-11 19 views

Respuesta

5

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

+0

Esto da 'Error en eval (expr, envir, enclos): objeto 'gear' no encontrado' –

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

Lo tienes, pero es más conveniente definir un nuevo 'data.frame' y luego ejecutar' qplot' en 'transform()' ed one, obteniendo así la leyenda y el eje limpios: 'newone < - transform (mtcars, cyl = factor (cyl), gear = factor (gear, levels = 5: 3)) 'Entonces:' qplot (cyl, data = newone, fill = gear) '... y el código es más limpio ¡también! – aL3xa

1

Para generalizar la solución de @ xiechao (@ Hadley no funciona en última ggplot), se puede revertir las órdenes de factores para lograr esto:

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

Cuestiones relacionadas