用 y 轴作为最大值的百分比制作频率多边形
making a frequency polygon with the y axis as a percentage of the max
给定代码
set.seed(1234)
dat <- data.frame(cond = factor(rep(c("A","B"), each=200)),
rating = c(rnorm(200),rnorm(200, mean=.8)))
head(dat)
ggplot(dat, aes(x=rating)) + geom_freqpoly()
我需要将 y 轴更改为最大计数的百分比。什么是最好的方法?
进一步编辑:我不是在寻找一种方法来显示总数据点的百分比,而是将最大计数设置为 100%,并将所有其他 bin 显示为该最大值的百分比。所以 y 轴将从 1-100 运行,峰值在 100。
我最初对你的问题有点困惑,但现在我明白了:你想表示 y 轴 "normalized" 到 ..count..
,其中你的最高点等于1.0(最大值),其他所有点都相等value / maximum value
.
为此,这应该可行:
ggplot(dat, aes(x=rating, y=..count../max(count))) + geom_freqpoly()
如果要将值更改为 0 到 100(而不是 0 到 1),则只需乘以 100:
ggplot(dat, aes(x=rating, y=(..count../max(count))*100)) + geom_freqpoly()
给定代码
set.seed(1234)
dat <- data.frame(cond = factor(rep(c("A","B"), each=200)),
rating = c(rnorm(200),rnorm(200, mean=.8)))
head(dat)
ggplot(dat, aes(x=rating)) + geom_freqpoly()
我需要将 y 轴更改为最大计数的百分比。什么是最好的方法?
进一步编辑:我不是在寻找一种方法来显示总数据点的百分比,而是将最大计数设置为 100%,并将所有其他 bin 显示为该最大值的百分比。所以 y 轴将从 1-100 运行,峰值在 100。
我最初对你的问题有点困惑,但现在我明白了:你想表示 y 轴 "normalized" 到 ..count..
,其中你的最高点等于1.0(最大值),其他所有点都相等value / maximum value
.
为此,这应该可行:
ggplot(dat, aes(x=rating, y=..count../max(count))) + geom_freqpoly()
如果要将值更改为 0 到 100(而不是 0 到 1),则只需乘以 100:
ggplot(dat, aes(x=rating, y=(..count../max(count))*100)) + geom_freqpoly()