Я хочу создать барплот с двумя категориями a и b, где цвет столбца зависит от категории. Для них обоих у меня есть строки x
, которые определяют порядок категорий. Значение в x
может встречаться в обеих категориях. Теперь я хочу найти способ построения столбцов на основе двух вещей: сначала все элементы x
, которые принадлежат категории 'a' в их лексикологическом порядке, затем то же самое для элементов, которые принадлежат категории b. В идеале без создает искусственный столбец x вдоль линий str_c(x, y)
, поскольку они уже закодированы в легенде. Кроме того, фасетирование не является опцией, поскольку это уже сделано для другого столбца.
Я нашел решение , которое явно перекрывает x-метки теми метками, которые я хочу, но я бы хотелчтобы увидеть менее хакерский и потенциально подверженный ошибкам способ!
library(tidyverse)
set.seed(1)
df <-
tibble(
x = c('1', '0', '0', '1'),
y = c('a', 'a', 'b', 'b'),
z = runif(4)
)
df %>%
arrange(y, x) %>%
mutate(ordering = str_c(y, '_', x)) %>%
{
ggplot(., aes(ordering, z, fill = y)) +
geom_col() +
scale_x_discrete(labels = pull(., x))
}