У меня есть три когорты студентов, идентифицированных с помощью фактора ExperimentCohort
. Для каждого ученика у меня есть LetterGrade
, также фактор. Я хотел бы построить гистограммную гистограмму LetterGrade
для каждого ExperimentCohort
. Использование
ggplot(df, alpha = 0.2,
aes(x = LetterGrade, group = ExperimentCohort, fill = ExperimentCohort))
+ geom_bar(position = "dodge")
меня очень близко, но три ExperimentCohorts
не имеют одинакового количества учеников. Чтобы сравнить их с более ровным полем, я бы хотел, чтобы ось y была неотъемлемой частью каждой буквы. До сих пор, не вычисляя эту пропорцию и помещая ее в отдельный блок данных перед построением графика, я не смог найти способ сделать это.
Каждое решение аналогичного вопроса о SO и в другом месте включает aes(y = ..count../sum(..count..))
, но sum (.. count.) выполняется по всему кадру данных, а не внутри каждой когорты. Кто-нибудь получил предложение? Здесь код для создания примерного кадра данных:
df <- data.frame(ID = 1:60,
LetterGrade = sample(c("A", "B", "C", "D", "E", "F"), 60, replace = T),
ExperimentCohort = sample(c("One", "Two", "Three"), 60, replace = T))
Спасибо.