2012-04-08 83 views
2

任何人都可以回答我如何绘制一个条形图,它将数字x-变量映射到由ggplot2中的因子分组的相对频率?重要的是: 相对频率应计算为分组属于一个因子的x值内的频率。现在它们被计算为相对于总计 x值的x值。在ggplot2中绘制相对频率与躲避条形图

为了说明它,一个例子:

library(ggplot2) 

data <-data.frame(x=runif(100,0:1), f=sample(1:3,100,replace=TRUE)) 
data$f <-factor(data$f) 
p <-ggplot(data, aes(x, colour=f, fill=f, group=f)) + 
    xlim(0,1) + 
    scale_y_continuous('Relative Frequency', formatter='percent') # or labels=percent 

让我们绘制它们刻面。然后Y轴显示比例是按组计算的。我使用这个代码:

p + stat_bin(aes(y=..count../sum(..count..)), position='dodge', binwidth=0.2) +   facet_grid(~f) 

让我们计划他们躲闪。 y轴表示比例是指整个数据集。在这里,我使用以下代码:

p + stat_bin(aes(y=..count../sum(..count..)), position='dodge', binwidth=0.2) 

我的目标是创建类似于第二与y轴每组可变的频率的曲线图。

预先感谢您的帮助! 贾纳

+0

您的第一张图不是给出每个方面的比例。您需要预先汇总数据,然后将其传递给ggplot。 – 2012-04-09 20:31:41

回答

2

我面临同样的问题,因为你的,我想通了:不是阴谋..count../sum(..count..),情节..density..*your_binwidth 事实上,垃圾桶统计创建的..density..变量基本上等于比例/ bindwidth。 您的密码变为:

p + stat_bin(aes(y=..density..*0.2), position='dodge', binwidth=0.2) 
+0

-1;除了这个答案是不完全正确的:http://stats.stackexchange.com/questions/4220/a-probability-distribution-value-exceeding-1-is-ok。请参阅:http://stackoverflow.com/questions/17655648/how-can-i-plot-the-relative-proportions-of-two-groups-using-a-fill-aesthetic-in寻找正确的解决方案。 – russellpierce 2013-07-22 00:26:21