ggplot2:为每个条形注释带有总计的堆积条形

时间:2012-11-19 09:17:10

标签: r ggplot2 bar-chart

我想注释一个图,以便显示每列的总数。例如

 ggplot(diamonds, aes(clarity, fill=cut)) + 
        geom_bar(position="fill") +
        scale_y_continuous(name="proportion")

这将产生堆积的条形图。然而,很难知道每个条的n是多少。 I1,SI2等。如何对其进行注释,以便对于每个条形图,n显示在顶部?

1 个答案:

答案 0 :(得分:3)

最简单的方法是在绘图之前计算总计,然后将它们分别添加到绘图中。首先,我们计算列总数:

totals = tapply(diamonds$price, diamonds$clarity, length)
dd = data.frame(clarity = names(totals), labels = as.vector(totals), y= 1)

然后我们使用geom_text添加总计:

ggplot(diamonds, aes(clarity)) + 
    geom_bar(aes( fill=cut), position="fill") +
    scale_y_continuous(name="proportion") + 
    geom_text(data=dd, aes(x=clarity, y=y, label=labels), size=4)