如何将geom_box中的填充alpha设置为因子中的观察次数

时间:2013-02-08 15:45:33

标签: r ggplot2

我需要绘制一组箱形图,其中数据按因子分组。我还想为每个框设置alpha值,以表示每个因子中的观察数。对于给定因子的观察越多,alpha越高。

mpg数据为例......

绘制情节很简单:

library(ggplot2)
ggplot(mpg, aes(x=factor(class), y=displ)) + 
   geom_boxplot(aes(fill="red", alpha=10)) +
   scale_fill_manual(values=c("red"="red"),guide="none") +
   scale_alpha(range=c(0,1), guide="none")

Example box plots http://aws.drewconway.com.s3.amazonaws.com/dev/img/box_plots.png

使用class计算每个plyr的观察次数非常简单:

ddply(mpg, .(class), nrow)
       class V1
1    2seater  5
2    compact 47
3    midsize 41
4    minivan 11
5     pickup 33
6 subcompact 35
7        suv 62

我确信ggplot2内部有一种聪明的方法,但我已经用尽了所有的想法。

谢谢!

1 个答案:

答案 0 :(得分:4)

如果您从alpha中提取aesthetic (aes),则可以直接根据每个alpha的{​​{1}}提供length值,如下所示:

class

你明白了:

ggplot2_alpha