在ggplot2 stat_binhex中计算垃圾箱的百分比

时间:2012-01-21 04:50:58

标签: r ggplot2

我正在生成不同组所面对的数据点的binhex图。每个组可能具有不同的总点数,因此,不是每个bin值是绝对点数,我希望它是该组中总点数的百分比。这就是我现在正在尝试的事情:

d <- data.frame(grp= c(rep('a',10000), rep('b',5000)), 
                x= rnorm(15000), 
                y= rnorm(15000))
ggplot(d, aes(x= x, y= y)) + 
     stat_binhex(aes(fill= ..count../sum(..count..)*100)) + 
     facet_wrap(~grp)

这是对的吗? sum(..count..)是否按每个方面生成总积分(群组'a'为10000,群组'b'为5000),或者两个方面的结果是15000?

1 个答案:

答案 0 :(得分:5)

你是对的。

> ggplot(d, aes(x= x, y= y)) + stat_binhex(aes(fill= {print(sum(..count..));..count../sum(..count..)*100})) + facet_wrap(~grp)
[1] 10000
[1] 10000
[1] 5000

这意味着数据被分为10000和5000个元素(忽略第一个输出),这是你期望的。

但更简单的是,您可以使用..density..*100

ggplot(d, aes(x= x, y= y)) + stat_binhex(aes(fill= ..density..*100)) + facet_wrap(~grp)