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

如何使用Matplotlib和Pandas将堆叠柱状图改为分组柱状图

实现方法

仅需修改df_month.plot方法的核心参数即可,其余原有配置保持不变就能和原堆叠图的x轴完全一致:

  • 把参数stacked=True改为stacked=False,pandas柱状图默认就是分组展示模式,关闭堆叠参数后就能生成你需要的分组柱状效果
  • 可选添加width参数调整每组柱子的总宽度,避免12个月份的柱子过于拥挤

修改后完整代码

import matplotlib.pyplot as plt
import pandas as pd

years=["ASD","MNG","KQR","MND","QST", "MNR"]
dataavail={
    "Jan":[20,20,30,19,10,21],
    "Feb":[20,13,10,18,15,30],
    "Mar":[20,20,10,15,18,30],
    "Apr":[20,20,10,15,18,0],
    "May":[20,20,10,15,18,0],
    "Jun":[20,20,10,15,18,0],
    "Jul":[20,20,10,15,18,0],
    "Aug":[20,20,10,15,18,45],
    "Sep":[20,20,10,15,18,0],
    "Oct":[20,20,10,15,18,0],
    "Nov":[20,20,10,15,18,0],
    "Dec":[20,20,0,0,0,0],
}


df_month = pd.DataFrame(dataavail, index=years)
fig, ax1 = plt.subplots(1, figsize=(8, 5))
df_month.plot(kind='bar', stacked=False, width=0.75, colormap=plt.cm.tab20, ax=ax1)
plt.legend(loc="upper right", ncol = 3,handlelength=1.5, borderpad=0.2, labelspacing=0.2) 
plt.xticks(rotation=0)
plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:54:09