关于r:在ggplot中使用geom_bar()显示频率而不是计数 | 珊瑚贝

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 ,它看起来是一样的。


来源:https://www.codenong.com/19835987/

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?