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

如何用R的ggplot2绘制堆叠条形图呈现销售人员的销售组合构成?

用ggplot2实现堆叠条形图展示销售组合构成

当然可以用ggplot2实现堆叠条形图,而且这确实是直观呈现每个销售人员销售组合构成的绝佳方案!

核心实现步骤

首先,你的数据里需要有一个表示销售组合类别的字段(比如产品类型、客户行业、订单来源等,假设这个字段叫Product.Category,你需要替换成自己数据里实际的列名)。接下来直接修改你的代码即可:

# 替换Product.Category为你实际的销售组合类别列名
g <- ggplot(data1, aes(x = Sales.Person, y = Annualized.Booking, fill = Product.Category))
g + geom_col(position = "stack") +  # stack是默认堆叠方式,可明确写出
  labs(
    title = "销售人员销售组合明细对比",
    y = "年度预订总额",
    fill = "产品类别"  # 这里修改图例的标题,对应你的销售组合类别
  ) +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))  # 旋转x轴标签,避免名称重叠

代码解释

  • fill = Product.Category:告诉ggplot用这个字段区分堆叠的不同部分,每个颜色对应一类销售组合;
  • geom_col:相比你之前用的geom_bar(weight=...),geom_col更适合直接处理数值型数据,它会自动按x和fill的分组对y值求和,生成堆叠条形;
  • 最后一行的theme设置是为了避免销售人员名称过长导致x轴标签重叠,可根据你的数据调整角度和对齐方式。

进阶:百分比堆叠(看占比)

如果更关注每个销售人员的销售组合占比,而非绝对金额,可以改成百分比堆叠:

g <- ggplot(data1, aes(x = Sales.Person, y = Annualized.Booking, fill = Product.Category))
g + geom_col(position = "fill") +
  labs(
    title = "销售人员销售组合占比对比",
    y = "占比(%)",
    fill = "产品类别"
  ) +
  scale_y_continuous(labels = scales::percent) +  # 将y轴转为百分比格式
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

替代方案参考

如果你的销售组合类别特别多(比如超过5类),堆叠条形图可能会显得拥挤,这时候可以考虑:

  • 分组条形图:把position = "stack"改成position = "dodge",每个销售人员对应一组并列的条形,对比不同类别金额更清晰;
  • 树状图(Treemap):用treemap包展示每个销售人员下各类别销售的占比和金额大小,适合类别较多的场景。

总的来说,堆叠条形图完全匹配你的需求,既能对比不同销售人员的总销售额,又能直观看到每个销售人员的销售组合构成,是非常合适的选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:43:29