ggplot: relative frequencies of two groups
ggplot2, r
Solution
I usually do this by simply precalculating the values outside of ggplot2 and using `stat = "identity"`:
df1 <- melt(ddply(df,.(gender),function(x){prop.table(table(x$outcome))}),id.vars = 1)
ggplot(df1, aes(x = variable,y = value)) +
facet_wrap(~gender, nrow=2, ncol=1) +
geom_bar(stat = "identity")
Problem
I want a plot like this except that each facet sums to 100%. Right now group M is 0.05+0.25=0.30 instead of 0.20+0.80=1.00. ``` df <- rbind( data.frame(gender=c(rep('M',5)), outcome=c(rep('1',4),'0')), data.frame(gender=c(rep('F',10)), outcome=c(rep('1',7),rep('0',3))) ) df ggplot(df, aes(outcome)) + geom_bar(aes(y = (..count..)/sum(..count..))) + facet_wrap(~gender, nrow=2, ncol=1) ``` (Using y = ..density.. gives worse results.)