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

如何基于归一化DataFrame列绘制单个堆叠条形图?

基于归一化DataFrame绘制单个堆叠条形图的实现方案

你的数据是各部门发送行为的归一化占比,要绘制单个堆叠条形图(把所有部门占比堆叠成一个完整条形),可以用matplotlib直接实现,具体代码和说明如下:

import pandas as pd
import matplotlib.pyplot as plt

# 加载你的数据(如果已存在DataFrame可跳过此步骤)
df = pd.DataFrame(
    {'sender_department': [0.441629, 0.288440, 0.244021, 0.013952, 0.007403, 0.004556]},
    index=['Sales', 'Operations', 'Admin', 'IT', 'Engineering', 'Marketing']
)

# 初始化堆叠底部位置
bottom_pos = 0
# 为每个部门分配不同颜色
dept_colors = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b']

# 循环绘制每个堆叠块
for dept, color in zip(df.index, dept_colors):
    ratio = df.loc[dept, 'sender_department']
    plt.bar(x=0, height=ratio, bottom=bottom_pos, color=color, label=dept)
    bottom_pos += ratio

# 调整图表显示效果
plt.title('部门发送占比分布')
plt.xticks([0], ['整体占比'])
plt.ylabel('归一化占比')
# 把图例放在图表外侧,避免遮挡
plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left')
plt.tight_layout()
plt.show()

关键逻辑说明

  • 用bottom_pos变量控制每个堆叠块的起始高度,每绘制一个部门就更新底部位置,实现堆叠效果
  • 单个堆叠条形图的x轴仅需一个类别,所以x坐标设为0即可
  • 自定义颜色区分不同部门,图例放在外侧保证图表清晰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 13:05:25