如何使用ggplot2向条形图的条形添加频率计数标签?

39

我希望绘制一个柱状图,用于表示[r]因子变量的频率分布,其中每个柱子代表因子水平的频数计数。我使用ggplot2来完成这个任务,并且没有问题。

我无法想象如何在柱状图中添加频率计数标签。 我尝试的语法如下:

ggplot(data, aes(x = factorvar)) + geom_bar(fill = "somecolor") + geom_text(aes(y = ???))

我认为我已经在stackoverflow和W.Chang的“R Graphics Cookbook”中进行了彻底的搜索,但是我找不到任何关于在geom_text()的美学参数中应该匹配“y”参数的具体答案。我尝试了一些变体,比如:(y = ..count..),但是它没有起作用。

我会感激任何帮助。谢谢...


从这个问题的一些部分笔记中可以得到一个例子:geom_text(aes(label = numbers), vjust=-1, position = position_dodge(0.9), size = 3) # 尝试数字。 - lawyeR
1个回答

119
ggplot(data=diamonds, aes(x=clarity)) +
geom_bar() +
geom_text(stat='count', aes(label=..count..), vjust=-1)

这里输入图片描述


12
对我来说,stat='count'很有效。 - Dinesh
1
"Stat = "count"" 对我也起作用了。错误提示说“StatBin”需要一个连续变量,但我有分类变量。 - Alison Bennett
1
我收到了这个警告:stat_bin()使用了bins = 30。请使用更好的binwidth值。 - skan
1
我收到了一个错误,提示“stat_count需要以下缺失的美学元素:x”。 - Sagar
6
ggplot2 版本 3.3.0 现在支持 geom_text(stat = "count", aes(label = after_stat(count)), vjust = -1),此语法可用于统计图标签标注。 - gofraidh
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接