任何人都可以回答我如何绘制条形图,将数字 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 轴上每组变量的频率。
非常感谢您提前提供的帮助! 贾娜
最佳答案
我遇到了和你一样的问题,我想通了:不是绘制..count../sum(..count..)
,而是绘制..密度。 .*your_binwidth
事实上,bin stat 创建的 ..密度..
变量基本上等于比例/绑定(bind)宽度。
您的代码将变为:
p + stat_bin(aes(y=..density..*0.2), position='dodge', binwidth=0.2)
关于r - 在 ggplot2 中使用闪避条形图绘制相对频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10064080/