dgrtwo / drlib

аюсь создать несколько отдельных графиков из одного и того же data.frame с различным порядком уровней факторов на оси Y для каждого графика. Предполагается, что каждый график упорядочивает уровни факторов по y по убыванию.

Я знаю, что это можно сделать вручную для каждого графика, но я ищу более эффективный и элегантный способ, так как у меня будет довольно много графиков, которые мне нужно создать. Это не должно включать использование facet_wrap, если есть другой способ, может быть, с циклами и т. Д.?

library(ggplot2)
library(dplyr)
data("diamonds")

Взятие набора данных и агрегирование по двум уровням фактора (ясность и сокращение):

means <- diamonds %>%
group_by(clarity, cut) %>%
summarise(carat = mean(carat))

Здесь я изменяю порядок с помощью одного фактора, но в конечном итоге я хотел бы изменить порядок отдельно для каждого графика (уменьшив среднее значение для ясности).

means$clarity <- reorder(means$clarity, means$carat, FUN = mean)

Создание отдельных сюжетов с помощью face_wrap. Использованиеordin_flip для сравнения графиков проще.

ggplot(means, aes(x = clarity, y = carat)) +
  geom_col() +
  facet_wrap(~cut, ncol = 1) +
  coord_flip()

Вы увидите, что это создает отдельные графики для каждого типа среза, но порядок уровней факторов на оси y не является правильным для каждого отдельного случая. Как я могу правильно заказать их, не делая это вручную для каждого типа резки?

Ответы на вопрос(1)

Ваш ответ на вопрос