2

谁能回答我如何绘制一个条形图,该条形图将数字 x 变量映射到其相对频率,按 ggplot2 中的一个因子分组?重要的是:相对频率应计算为属于一个因素的 x 值内的组频率。现在它们被计算为相对于 x 值总数的 x 值。

为了说明这一点,举个例子:

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 轴上。

非常感谢您提前提供的帮助!亚娜

4

1 回答 1

2

我遇到了和你一样的问题,我想通了: 实际上,由 bin stat 创建的变量基本上等于比例/绑定宽度,而不是..count../sum(..count..)plotting 。您的代码变为:..density..*your_binwidth..density..

p + stat_bin(aes(y=..density..*0.2), position='dodge', binwidth=0.2)
于 2012-04-16T09:31:12.867 回答