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

如何配置df.plot.bar():以Week为分组,其余列为X轴

调整Pandas柱状图分组展示方式

原始数据

Week      Income    Fuel  ...  Extras  Total costs  Remainder
 18-18-218    2000.0  1200.0  ...   122.0       1842.0      158.0
 12-12-2012   1750.0   100.0  ...   100.0        820.0      930.0
    nan       1786.0   289.0  ...   109.0       1060.0      726.0

当前使用代码

chartdf = pd.DataFrame(chartlist)
chartdf.plot.bar(x="Week", rot=0)
plt.show()

问题与需求

当前代码生成的图表为3个Week类别下各对应多个bar,不符合需求。需要将Week作为分组维度,生成3组bar(对应3个Week值),X轴显示其余列的表头,每个Week组包含对应列数据的柱状展示。

解决方案

通过转置数据结构实现需求,若Week列存在空值可先填充为明确标识:

完整代码示例

import pandas as pd
import matplotlib.pyplot as plt

# 构建数据框
chartdf = pd.DataFrame(chartlist)
# 处理空Week值(可选,根据需求调整)
chartdf['Week'] = chartdf['Week'].fillna('Unknown')
# 转置数据并绘制柱状图
chartdf.set_index('Week').T.plot.bar(rot=0)
plt.xlabel('数据类别')
plt.ylabel('数值')
plt.title('各Week分组下的类别数据对比')
plt.show()

代码说明

  • set_index('Week'):将Week列设为索引,作为分组依据
  • .T:转置数据框,原列名变为X轴标签,原Week索引变为分组系列
  • plot.bar(rot=0):绘制柱状图,保持X轴标签水平显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:01:10