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

如何创建按两类(A、B)分组的堆叠条形图

嘿,我来帮你搞定这个A、B两类分组的堆叠条形图!不管你习惯用代码还是可视化工具,我都给你整理了具体的实现步骤,照着来就行~

方法一:用Python(Matplotlib/Seaborn)实现

如果你喜欢用代码实现,Python的Matplotlib和Seaborn是最常用的工具,先给你举个实际例子:

首先得把数据整理成DataFrame格式,假设你的数据表是这样的(你可以把下面的示例数据换成自己的真实数据):

import pandas as pd

# 示例数据表,替换成你自己的列名和数值
data = {
    "分组名称": ["产品组A", "产品组B", "产品组C", "产品组D"],
    "A类数据": [120, 180, 90, 210],
    "B类数据": [80, 100, 150, 70]
}
df = pd.DataFrame(data)

用Matplotlib绘制堆叠条形图

这个方法更灵活,能精准控制每个部分的样式:

import matplotlib.pyplot as plt

# 设置x轴的位置,对应每个分组
x = range(len(df["分组名称"]))
bar_width = 0.6  # 条形的宽度

# 先画A类的条形,作为堆叠的底层
plt.bar(x, df["A类数据"], width=bar_width, label="A类", color="#2ecc71")
# 再画B类的条形,底部设置为A类的数值,实现堆叠效果
plt.bar(x, df["B类数据"], width=bar_width, bottom=df["A类数据"], label="B类", color="#3498db")

# 设置x轴的标签为分组名称
plt.xticks(x, df["分组名称"])
# 添加图表标题和坐标轴标签
plt.title("A、B两类分组堆叠条形图", fontsize=14)
plt.xlabel("分组", fontsize=12)
plt.ylabel("数据数值", fontsize=12)
# 显示图例
plt.legend()

# 调整布局,防止标签被截断
plt.tight_layout()
# 显示图表
plt.show()

用Seaborn绘制堆叠条形图

如果想更简洁,可以用Seaborn,但需要先把宽格式数据转成长格式:

# 把宽格式数据转成长格式(适合Seaborn的输入要求)
df_long = df.melt(id_vars="分组名称", var_name="数据类别", value_name="数值")

import seaborn as sns

# 绘制堆叠条形图,estimator=sum表示对同一分组下的类别求和,ci=None去掉误差线
sns.barplot(data=df_long, x="分组名称", y="数值", hue="数据类别", estimator=sum, ci=None, palette=["#2ecc71", "#3498db"])
plt.title("A、B两类分组堆叠条形图", fontsize=14)
plt.tight_layout()
plt.show()
方法二:用Excel实现(零代码方案)

如果不想写代码,Excel就能快速搞定,步骤超简单:

  • 第一步:把你的数据整理成Excel表格,确保第一列是分组类别,后面两列分别是A类和B类的数值(表头要清晰),比如:
    分组类别A类数值B类数值
    组11015
    组22520
    组31822
  • 第二步:选中整个数据区域(包括表头),点击顶部菜单栏的「插入」选项卡,找到「图表」组里的「条形图」,选择堆积条形图(注意是「堆积」,不是「簇状」哦)
  • 第三步:美化图表——右键可以修改标题、调整坐标轴标签、移动图例位置,还能给每个堆叠部分添加数据标签(右键条形→添加数据标签),让数值一目了然。

小提示

  • 不管用哪种方法,核心是确保你的数据结构正确:每个主分组对应一行,A、B两类的数值各占一列(或者转成长格式适配Seaborn)
  • 代码里的列名和颜色都可以根据自己的需求修改,不用局限于示例里的设置~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 15:12:40