2010-08-12 18 views
5

Tôi muốn thay đổi thứ tự xếp chồng của các bệnh viện trong sơ đồ bên dưới để # 1 ở trên cùng và # 4 ở dưới cùng.ggplot: cách xác định thứ tự theo chiều dọc của nhiều ô?

Sơ đồ được sản xuất với

ggplot(survey,aes(x=hospital, y=age))+geom_boxplot()+coord_flip()+xlab("")+ylab ("\nPatient Age") 

và tôi cần các từ trên> để có điều ngược lại những gì tại là xuống. Tôi không chắc tại sao nó lại như hiện nay. Cột 'bệnh viện' là một yếu tố trong trường hợp nó quan trọng.

Rất cám ơn!

alt text

Trả lời

10

Bạn có một vài tùy chọn. Cách dễ nhất là thêm

p + scale_x_reverse() 

vào cốt truyện. Bạn cũng có thể đảo ngược mức yếu tố

relevel(survey$hospital, rev(levels(survey$hospital))) -> survey$hospital 

Hoặc, bạn có thể xác định thứ tự bạn muốn các hộp bằng tay với xlim()

p + xlim("Hospital #4","Hospital #3","Hospital #2","Hospital #1") 
+0

Ngữ nghĩa, tôi nghĩ là lựa chọn thứ hai là tốt nhất. Nó ngăn cách thao tác với biểu mẫu dữ liệu từ mã vạch. –

+0

Đầu tiên đưa ra một lỗi: Lỗi: Biến không liên tục được cung cấp cho scale_x_reverse. Ngoài ra: Thông báo cảnh báo: Trong Ops.factor (x): - không có ý nghĩa đối với các yếu tố nhưng thứ ba hoạt động tốt. Tôi không tiết lộ chúng bởi vì nếu tôi trưng bày khảo sát bệnh viện $, họ đã được san bằng theo thứ tự tự nhiên (1, 2, 3, 4). – wishihadabettername

+1

Tôi nghĩ 'scale_x_reverse' chỉ dành cho các giá trị liên tục. –

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