我想从一些分箱/聚合数据开始,并使用ggplot2
绘制相应的相对频率多边形和相对频率直方图。不幸的是,我无法直接使用geom_freqpoly
和geom_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