2010-03-11 38 views
8

Từ online bar chart guide:Làm cách nào để thay đổi thứ tự xếp chồng trong biểu đồ thanh trong ggplot2?

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

barplot using <code>qplot</code> feature of <code>ggplot2</code>

Làm thế nào để tôi nhận được từ 5 đến ngồi ở phía dưới, 4 ở trên đó, và 3 ở trên?

+0

điều đó hoàn toàn không thân thiện với những người mù màu! :-) – dalloliogm

+0

Có bất kỳ bảng phối màu nào dành riêng cho những người dùng đó không? Nó sẽ được tốt đẹp ... – aL3xa

Trả lời

5

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

+0

Điều này cho 'Lỗi trong eval (expr, envir, enclos): đối tượng 'gear' không tìm thấy' –

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

Bạn có nó, nhưng nó thuận tiện hơn để xác định 'data.frame' mới và sau đó chạy' qplot' trên 'transform()' ed một, do đó nhận được chú thích và trục sạch: 'newone < - biến đổi (mtcars, cyl = factor (cyl), gear = factor (gear, levels = 5: 3)) 'Then:' qplot (cyl, dữ liệu = newone, fill = gear) '... và mã là sạch hơn quá! – aL3xa

1

Để khái quát giải pháp @ xiechao của (@ hadley của không hoạt động trong ggplot mới nhất), bạn có thể đảo ngược lệnh yếu tố để đạt được điều này:

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

Các vấn đề liên quan