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 не является правильным для каждого отдельного случая. Как я могу правильно заказать их, не делая это вручную для каждого типа резки?