【问题标题】:Plot relative frequencies with dodged bar plots in ggplot2在 ggplot2 中用闪避的条形图绘制相对频率
【发布时间】:2012-04-08 15:44:31
【问题描述】:

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

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

【问题讨论】:

  • 你的第一张图没有给出每个方面的比例。您需要预先汇总数据,然后将其传递给 ggplot。

标签: r ggplot2 frequency


【解决方案1】:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-02
相关资源
最近更新 更多