nie należy polegać na domyślnej kolejności poziomów nałożonych przez factor()
lub wewnętrznie przez ggplot
jeśli grupowanie podać zmienną jest nie czynnikiem. Samodzielnie ustaw poziomy samodzielnie.
dat <- data.frame(x = runif(100), y = runif(100),
Group = gl(5, 20, labels = LETTERS[1:5]))
head(dat)
with(dat, levels(Group))
Co jeśli chcę je w tym arbitralnym porządku?
set.seed(1)
with(dat, sample(levels(Group)))
Aby to zrobić, ustaw poziomy tak, jak chcesz.
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))
Teraz możemy to wykorzystać, aby mieć panele narysowane w kolejności my Kupię:
require(ggplot2)
p <- ggplot(dat, aes(x = x)) + geom_bar()
p + facet_wrap(~ Group)
która produkuje:
Zmień kolejność pierwotnego czynnika. Możesz użyć 'relevel()' lub 'reorder()' lub utwórz niestandardową kolejność i użyj 'factor()'. – Chase