r使用ggplot2从binned数据(或频率表)中获得相对频率多边形和直方图

时间:2016-10-27 08:24:42

标签: r ggplot2 histogram frequency

我想从一些分箱/聚合数据开始,并使用ggplot2绘制相应的相对频率多边形和相对频率直方图。不幸的是,我无法直接使用geom_freqpolygeom_histogram,因为它们需要原始数据作为输入。

那么如何获得同样漂亮的ggplot2 freqpoly和直方图图形,没有原始原始数据,只提供相对频率/分档数据?

这是我的分档数据:

brks <- c(100, 130, 160, 200, 250, 300)
lows <- brks[1:length(brks)-1]
ups <- brks[2:length(brks)]
mids <- (lows + ups) / 2
bins <- paste("[", lows, " -- ", ups, "(", sep = "")
print(bins)

freq <- c(40, 50, 32, 7, 5)
rel_freq <- freq / sum(freq)
cum_rel_freq <- cumsum(rel_freq)

tbl <- data.frame(bins, freq, rel_freq, cum_rel_freq)

“freqpoly”的初步解决方案(我希望x轴上有brks):

ggplot(tbl, aes(x = brks, y = c(0, tbl$cum_rel_freq))) + geom_line() # This one results in an error
# plot(x = brks, y = c(0, cum_rel_freq)) # Close to what I'd like to get but in base graphics

“直方图”的初步解决方案(另外,我想在x轴上将bins的{​​{1}}作为类别标签作为刻度线,但我不是那里(我也玩mids和其他geoms,但无济于事):

geom_area

0 个答案:

没有答案