Хэдли разрабатывает пакет под названием forcats
. Этот пакет делает задачу намного проще. Вы можете использовать fct_infreq()
, если хотите изменить порядок оси x на частоту фактора. В случае примера mtcars
в этом сообщении вы хотите переупорядочить уровни cyl
по частоте каждого уровня. Уровень, который чаще всего остается на левой стороне. Все, что вам нужно, это fct_infreq()
.
library(ggplot2)
library(forcats)
ggplot(mtcars, aes(fct_infreq(factor(cyl)))) +
geom_bar() +
labs(x = "cyl")
Если вы хотите пойти наоборот, вы можете использовать fct_rev()
вместе с fct_infreq()
.
ggplot(mtcars, aes(fct_rev(fct_infreq(factor(cyl))))) +
geom_bar() +
labs(x = "cyl")