【发布时间】:2013-11-07 12:29:37
【问题描述】:
在this page,他们给出了下面的例子
library(ggplot2)
library(reshape2)
ggplot(data=tips, aes(x=day)) + geom_bar(stat="bin")
我希望在 y 轴上有一个频率,而不是计数。我怎样才能做到这一点?
【问题讨论】:
在this page,他们给出了下面的例子
library(ggplot2)
library(reshape2)
ggplot(data=tips, aes(x=day)) + geom_bar(stat="bin")
我希望在 y 轴上有一个频率,而不是计数。我怎样才能做到这一点?
【问题讨论】:
解决方法见related question:
pp <- ggplot(data=tips, aes(x=day)) +
geom_bar(aes(y = (..count..)/sum(..count..)))
如果您想将频率标记为百分比,请添加以下内容(请参阅here):
library(scales)
pp + scale_y_continuous(labels = percent)
【讨论】:
..count..中的点-点符号是什么意思?你对此有什么参考吗?
geom_bar 生成 ..density.. 变量,就像它的表亲函数 geom_histogram 一样。
labels=percent in scale_y_continuous(labels = percent) 不再起作用
现在..prop.. 可用
ggplot(data=tips, aes(x=day)) +
geom_bar(aes(y = ..prop.., group = 1))
【讨论】:
..count.. 选项则无效!
facet_wrap(~sex)?它适用于我。
..count../sum(..count..),它将创建一个数字,但频率将在所有方面总和为 1(我认为)。如果您使用..prop..,则每个方面的频率总和为 1。也许这取决于您要展示的内容。
..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,看起来还是一样的。