Không dựa vào thứ tự mặc định của các mức được áp đặt bởi factor()
hoặc nội bộ theo ggplot
nếu biến nhóm bạn cung cấp là không phải là một yếu tố. Đặt mức độ một cách rõ ràng cho mình.
dat <- data.frame(x = runif(100), y = runif(100),
Group = gl(5, 20, labels = LETTERS[1:5]))
head(dat)
with(dat, levels(Group))
Nếu tôi muốn chúng theo thứ tự tùy ý này thì sao?
set.seed(1)
with(dat, sample(levels(Group)))
Để thực hiện việc này, hãy đặt mức độ theo cách bạn muốn.
set.seed(1) # reset the seed so I get the random order form above
dat <- within(dat, Group <- factor(Group, levels = sample(levels(Group))))
with(dat, levels(Group))
Bây giờ chúng ta có thể sử dụng để có tấm vẽ theo thứ tự chúng tôi muốn:
require(ggplot2)
p <- ggplot(dat, aes(x = x)) + geom_bar()
p + facet_wrap(~ Group)
nào sản xuất:
Nguồn
2011-03-30 19:03:44
Sắp xếp lại thứ tự của yếu tố cơ bản. Bạn có thể sử dụng 'relevel()' hoặc 'reorder()' hoặc tạo một thứ tự tùy chỉnh và sử dụng 'factor()'. – Chase