【问题标题】:ggplot normalize a group histogram by groupggplot 按组归一化组直方图
【发布时间】:2014-02-18 00:47:28
【问题描述】:

如何标准化每个组的 ggplot 组直方图?

例子:

library(data.table)
library(ggplot2)

# Test data.
test <- data.table(id=1:100, cat=c(rep(c("A", "B", "A", "A", "B"), 20))
                 , grp=paste0("G", c(rep(1:2,50))))
test[, catGrp := paste0(cat, grp)]

# Normalized histogram of cat by grp.
# It is normalized over all grp.
# I want it normalized by grp.
ggplot(test, aes(x=cat, group=grp, fill=grp))
  + geom_histogram(aes(y=..count../sum(..count..)), position=position_dodge())

我得到的结果:

我想得到与这个相同的直方图,但每个组的总和 = 1 -- 或者级别将是 0.6 和 0.4 而不是 0.3 和 0.2。

最简单的方法是什么?谢谢。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:
    tab <- as.data.frame(prop.table(table(test$cat, test$grp), 2))
    ggplot(tab, aes(y = Freq,  x = Var1, fill = Var2)) + 
           geom_bar(stat = "identity", position = position_dodge())
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-14
      • 2017-11-08
      • 1970-01-01
      • 2013-06-20
      • 1970-01-01
      • 2015-01-15
      • 2018-10-30
      • 1970-01-01
      相关资源
      最近更新 更多