у меня есть проблемы, заполняющие бары в то время как группировка с facet_wrap Используя этот data.frame:ggplot2 с заливкой и группой
library(ggplot2)
library(gridExtra)
set.seed(1234)
testDat <- data.frame(answer=factor(sample(c("yes", "no"), 60, replace=TRUE)),
which=factor(sample(c("q1", "q2", "q3"), 60, replace=TRUE)))
Я хотел построить ответ, сгруппированные по приводимой переменной. Это дает мне абсолютные значения:
ggplot(testDat, aes(x=answer)) +
geom_bar(aes(fill=answer)) + facet_wrap(~which)
Это дает мне относительные значения. Но не для группы:
ggplot(testDat, aes(x=answer)) +
geom_bar(aes(y=(..count..)/sum(..count..), fill=answer)) + facet_wrap(~which)
Поиск ответа Я обнаружил это для определения относительных значений для каждой группы. Но цвет заливки больше не работает
ggplot(testDat, aes(x=answer)) +
geom_bar(aes(y=(..count..)/sum(..count..), group=which, fill=answer)) + facet_wrap(~which)
Он просто работает для трех различных значений «которые», а не «ответ»
ggplot(testDat, aes(x=answer)) +
geom_bar(aes(y=(..count..)/sum(..count..), group=which, fill=which)) + facet_wrap(~which)
Любые предложения о том, как заполнить бары?
p1<-ggplot(testDat, aes(x=answer)) + geom_bar(aes(y=(..count..)/sum(..count..), group=which, fill=answer)) + facet_wrap(~which)
p2<-ggplot(testDat, aes(x=answer)) + geom_bar(aes(y=(..count..)/sum(..count..), group=which, fill=which)) + facet_wrap(~which)
grid.arrange(p1,p2)
Спасибо за пояснения относительно использования агрегирования функций. Я нашел путь вокруг '..count ../ sum (.. count ..)' с '..density ..)'. Мой вопрос по-прежнему остается за тем, почему 'fill = which' работает, а' fill = answer' - нет. – schlusie
Соответствие подмножества функций для групп, определенных в эстетических отображениях (например, в вызове 'aes (...)'). Они не работают для групп, определенных неявно в грани. Поэтому, если у вас есть 'aes (..., fill = which)', а также 'facet__wrap (~ which)', вы определяете группы в обоих местах, и это сработает. Но это совершенно другой сюжет. – jlhoward