У меня есть образец набора данных
d=data.frame(n=rep(c(1,1,1,1,1,1,2,2,2,3),2),group=rep(c("A","B"),each=20),stringsAsFactors = F)
И я хочу нарисовать две отдельные гистограммы на основе групповой переменной.
Я попробовал этот метод, предложенный @jenesaisquoi в отдельном посте здесь.
Генерация нескольких графиков в ggplot по фактору
ggplot(data=d)+geom_histogram(aes(x=n,y=..count../sum(..count..)),binwidth = 1)+facet_wrap(~group)
Он добился цели, но если вы внимательно посмотрите, пропорции неправильные. Он не рассчитывал пропорцию для каждой группы, а скорее большую пропорцию. Я хочу, чтобы эта пропорция составляла 0,6 для числа 1 для каждой группы, а не 0,3.
Затем я попробовал пакет dplyr, и он даже не создал два графика. Он игнорировал команду group_by
. За исключением того, что пропорция верна на этот раз
d%>%group_by(group)%>%ggplot(data=.)+geom_histogram(aes(x=n,y=..count../sum(..count..)),binwidth = 1)
Наконец я попробовал факторинг с color
ggplot(data=d)+geom_histogram(aes(x=n,y=..count../sum(..count..),color=group),binwidth = 1)
Но результат далек от идеального. Я собирался принять один вывод, но с лотками рядом, а не друг над другом.
В заключение я хочу нарисовать две отдельные гистограммы с правильными пропорциями, рассчитанными в каждой группе. Если нет простого способа сделать это, я могу жить с одним графиком, но рядом с ячейками и с правильными пропорциями для каждой группы. В этом примере число 1 должно иметь 0,6 в качестве своей доли.