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

如何将Matplotlib生成的两个柱状图分配到subplots子图的两列中展示

Matplotlib 子图布局调整方案

问题原因

你现有代码无法将两个柱状图拆分到两个子图的原因有两点:

  • 重复创建画布:首次调用plt.figure()生成的画布未被使用,后续plt.subplots()生成的新画布会覆盖之前的尺寸、布局设置
  • 未指定绘图子图:pandas的plot方法默认在当前激活的最后一个子图上绘图,未手动指定子图位置时两个图会叠加显示

调整后代码

# Bar Plot for Firm Performance
# 直接在创建子图时指定画布参数,避免重复创建
fig, axs = plt.subplots(1, 2, figsize = (6, 4))
fig.suptitle("Firm performance", fontsize=14)
fig.subplots_adjust(top=0.85, wspace=0.3)

# 分别指定两个柱状图的绘制子图
dfSPSSactive['Q7_12_1'].value_counts().sort_index().plot(kind='bar', ax=axs[0])
dfSPSSactive['Q7_12_2'].value_counts().sort_index().plot(kind='bar', color='red', ax=axs[1])

# 可选设置:为子图添加单独标题
axs[0].set_title('Q7_12_1 分布')
axs[1].set_title('Q7_12_2 分布')

plt.show()

核心修改说明

调用pandas绘图接口时传入ax参数绑定对应子图即可,1行2列布局返回的axs是长度为2的数组,索引0对应左列子图,索引1对应右列子图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:51:02