Display frequency instead of count with geom_bar() in ggplot
在此页面上,他们给出了以下示例
1 2 3
| library(ggplot2)
library(reshape2)
ggplot(data=tips, aes(x=day)) + geom_bar(stat="bin") |
我希望在 y 轴上有一个频率,而不是计数。我怎样才能做到这一点?
这是可以在相关问题中找到的解决方案:
1 2
| pp <- ggplot(data=tips, aes(x=day)) +
geom_bar(aes(y = (..count..)/sum(..count..))) |
如果您想将频率标记为百分比,请添加以下内容(参见此处):
1 2
| library(scales)
pp + scale_y_continuous(labels = percent) |
- ..count.. 中的点-点符号是什么意思?你对此有什么参考吗?
-
@mcrisc 看看这个问题。
-
您将如何获得频率的数据标签,显示在每个条形上方?
-
我真的希望 geom_bar 像它的表亲函数 geom_histogram 那样生成 ..density.. 变量。
-
我认为 scale_y_continuous(labels = percent) 中的 labels=percent 不再起作用
-
@dieHellste 在 ggplot2_3.1.0 上运行,scales_1.0.0 仍然可以(R 3.5.1,Win 10)。
现在 ..prop.. 可用
1 2
| ggplot(data=tips, aes(x=day)) +
geom_bar(aes(y = ..prop.., group = 1)) |
-
如果您使用的是构面,则此方法有效,而 ..count.. 选项则无效!
-
@r_alanb 你的意思是添加例如facet_wrap(~sex)?它适用于我。
-
我应该定义"作品"。如果您使用 ..count../sum(..count..),它将创建一个数字,但频率将在所有方面总和为 1(我认为)。如果使用 ..prop..,则每个方面的频率总和为 1。也许这取决于您要展示的内容。
-
@r_alanb ..count../sum(..count..) 和 ..prop 只要你设置 group = 1 对我来说工作完全相同
-
ggplot(data=tips, aes(x=day)) + geom_bar(aes(y = ..prop.., group = 1)) + facet_wrap(~sex) 和 ggplot(data=tips, aes(x=day)) + geom_bar(aes(y = (..count..)/sum(..count..), group = 1)) + facet_wrap(~sex) 不会为我产生相同的情节。您也可以在 ..count.. 版本中删除 group=1 ,它看起来是一样的。