如何配置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
相关产品推荐
相关产品推荐

