ggplot2绘制按年份分组的geom_col柱状图如何消除柱内分界?
geom_col本身没有内置的隐式聚合参数,你看到的水平分隔线本质是数据集内每个目标区域对应多行不同国家的观测值,geom_col默认逐行绘制堆叠柱体,每行的边界就形成了这些分隔线。
你可以通过两种方法在不提前聚合数据的前提下解决该问题:
- 方案1(推荐):修改geom_col的统计转换逻辑,指定自动按分组求和
只需调整你代码中geom_col一行的参数,新增stat = "sum"即可:
geom_col(aes(fill = region_of_interest), stat = "sum", alpha = 0.8)
ggplot会在绘图时自动按年份、目标区域两个维度对逮捕人数求和,生成的柱体不会存在内部分隔线。
- 方案2:视觉掩盖法
如果不想改动统计逻辑,可将柱体边框颜色设置为和填充色一致,直接覆盖分隔线:
geom_col(aes(fill = region_of_interest), alpha = 0.8, color = after_scale(fill))
该方案仅适合小数据集快速调整,大数据集下依然会生成大量底层小柱,绘图性能低于第一种方案。
内容的提问来源于stack exchange,提问作者jpugliese
相关产品推荐
相关产品推荐

