You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言ggplot绘图如何汇总低于阈值的数值生成Other分类

R语言ggplot绘制带Other合并分类柱状图实现方案

两种实现路径,可根据是否需要展示Other分类下的细分项选择:

  • 方案1:将小数值分类合并为单行Other汇总项,最终仅展示4个分类
  • 方案2:保留小数值分类的明细,在Other柱形内堆叠展示细分项

方案1:汇总生成Other分类行

直接对原数据做分组聚合,把所有Count小于50的条目统一归为Other组求和,输出的数据集可直接用于ggplot绘图:

# 加载数据处理与绘图包
library(ggplot2)
library(dplyr)

# 读入示例数据
dat <- read.table(text="Color      Count
Red         550
Blue        309
Green       296
Purple       49
Yellow       36
Brown        19", head=TRUE)

# 数据聚合处理
dat_agg <- dat |> 
  mutate(plot_cat = ifelse(Count >= 50, Color, "Other")) |> 
  group_by(plot_cat) |> 
  summarise(total_count = sum(Count), .groups = "drop")

处理后dat_agg的输出如下,Other类计数值正好为104:

plot_cattotal_count
Blue309
Green296
Other104
Red550

直接调用ggplot绘图即可:

ggplot(dat_agg, aes(x = plot_cat, y = total_count, fill = plot_cat)) +
  geom_col(width = 0.7)

方案2:堆叠展示Other分类下的细分项

不需要提前聚合小类数值,绘图时通过双层分类映射,让Purple、Yellow、Brown三个小类自动堆叠在Other的x轴位置,既满足Other分类的合并展示需求,也能保留细分项的区分度:

dat_stacked <- dat |> 
  mutate(
    # 外层x轴分组:>=50保留原分类,其余归为Other
    x_cat = ifelse(Count >= 50, Color, "Other"),
    # 填充色映射保留原始颜色分类
    fill_cat = Color
  )

ggplot(dat_stacked, aes(x = x_cat, y = Count, fill = fill_cat)) +
  geom_col(width = 0.7)

该方法绘制的Other柱形总高度同样为104,柱内按三个小类的数值自动分段堆叠。


内容的提问来源于stack exchange,提问作者Eric Dodson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 06:39:28