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

如何使用pandas.DataFrame内置功能创建叠加条形图

使用pandas DataFrame实现与原生matplotlib一致的叠加条形图

没问题,我帮你把原生matplotlib的叠加条形图代码转换成pandas DataFrame的实现方式,保证条形的叠加顺序和布局完全一致。

原代码逻辑分析

你的旧代码是通过三次调用plt.bar()来实现叠加:

  • 先绘制最底层的d系列
  • 然后在上面叠加c系列
  • 最后在最上层叠加b系列

要在pandas里复刻这个效果,关键是保证DataFrame的列顺序和原代码的绘图顺序对应,因为pandas的堆叠条形图会按照列的顺序从下到上叠加。

实现代码

import pandas as pd
import matplotlib.pyplot as plt

# 生成原始数据
a = range(1, 25)
b = list(a)  # 转成列表避免range对象的潜在问题
c = [x+2 for x in b]
d = [x*2 for x in c]

# 构造DataFrame,列顺序对应原绘图顺序:d(底层)、c(中层)、b(上层)
df = pd.DataFrame({
    'd': d,
    'c': c,
    'b': b
}, index=a)

# 绘制堆叠条形图
df.plot(kind='bar', stacked=True, figsize=(10,6))
plt.show()

关键说明

  • 构造DataFrame时,列的顺序是d、c、b,这和你原代码中plt.bar的调用顺序完全匹配,确保叠加层次一致:d在最底部,c在中间,b在最顶部。
  • 使用stacked=True参数开启堆叠模式,这是pandas实现叠加条形图的核心参数。
  • 把a作为DataFrame的索引,这样x轴的刻度会和原代码保持一致。

运行这段代码后,你会得到和原代码完全相同布局的叠加条形图。

内容的提问来源于stack exchange,提问作者Boris L.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:43:59