分组显示比例:如何跳过一些酒吧?

时间:2017-02-12 09:23:13

标签: r ggplot2 bar-chart

我有一个变量,可以对数据框中的每个条目赋值0或1。同时,每个值都是在某种条件下生成的。

现在,我想绘制每个条件中“1”的比例。注意,两个条件中的各个数据条目是不平衡的,即条件' a'可以有20个0或1的条目,而条件' b'可以有200个0或1的条目。

感谢这里的一些帖子,我走到了这一步:

x <- rbinom(378,1,.9)
cond <- rbinom(378,1,.7)+1
myDf <- data.frame(x,factor(cond,labels=c('a','b')))
names(myDf) <- c('val', 'cond')
g <- ggplot(data.frame(myDf),aes(x=val, fill=cond)) 


g + geom_histogram(aes(y=0.5*..density..), binwidth=0.5, position=position_dodge())

example image

如果您检查图表,您会很快发现一组条形图是多余的。

- &GT;如何跳过在x轴刻度0处绘制条形图?它们已经用x轴1的标记来表示,因为我毕竟是在绘制比例。

编辑:如果您有任何想法,可以如何测试比例差异,请随时查看相关的question

1 个答案:

答案 0 :(得分:1)

就像Henrik对我的问题的评论所描述的那样,问题可以通过首先计算比例然后使用geom_col()绘制它们来解决。

基于原始问题中的代码:

df <- aggregate(val ~ cond, myDf, function(x) sum(x)/length(x))

ggplot(df, aes(x = cond, y = val, fill = cond)) + geom_col()

enter image description here