如何使用ggplot2绘制反向累积直方图?
反向累积直方图绘制需求与解决方案
需求说明
我已成功绘制累积直方图:以mtcars数据集为例,每辆车对应一定数量的carburetors(化油器),x轴为化油器数量,图中展示的是化油器数量少于该值的汽车数量。我希望绘制一幅展示化油器数量多于该值的汽车数量的反向累积直方图。
现有代码与当前图表
现有代码
mtcars %>% ggplot(aes(carb)) + geom_histogram(aes(y = cumsum(..count..)))
当前绘制的图

修改方案
要实现反向累积计数(统计化油器数量多于当前x轴值的汽车数量),只需将正向累积计数从总样本量中扣除即可,修改后的代码如下:
mtcars %>% ggplot(aes(carb)) + geom_histogram(aes(y = sum(..count..) - cumsum(..count..))) + labs(y = "化油器数量多于当前值的汽车数量")
关键逻辑说明
sum(..count..):自动计算mtcars数据集的总样本量(共32辆汽车)sum(..count..) - cumsum(..count..):用总数量减去正向累积数量,得到多于当前化油器数量的汽车累计数- 通过
labs()自定义y轴标签,让图表的统计含义更直观
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

