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

如何转置数据以在Matplotlib中绘制正确的堆叠条形图

解决堆叠条形图绘制问题

你的问题出在数据结构与绘图逻辑不匹配——当前代码把index列(Yes/No/Dont know)当成了X轴,而你实际需要X轴对应1-17这些列名,每个X轴位置堆叠三个类别的数据。按以下步骤调整即可:

步骤1:调整数据结构

先把index列设为数据框的行索引,再转置数据,让X轴对应1-17,Y轴对应三个类别的数值(同时填充NaN值避免绘图报错):

# 将index列设为行索引
dfu.set_index('index', inplace=True)
# 转置数据并填充NaN为0
dfu_transposed = dfu.T.fillna(0)

步骤2:绘制目标堆叠条形图

用转置后的数据集绘图,此时X轴自动对应1-17的列名,每个条形由Yes/No/Don't know三个部分堆叠:

ax = dfu_transposed.plot.bar(stacked=True, figsize=(12, 6))
# 优化图表标签
ax.set_xlabel('列名')
ax.set_ylabel('数值')
ax.set_title('按列名分组的堆叠条形图')
# 显示图例标题
ax.legend(title='类别')

这样生成的图表就完全符合需求:X轴是1到17的列名,每个位置的条形由三个类别的数据堆叠而成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:50:23