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

如何在matplotlib中将底部跨列子图的高度缩减一半

matplotlib跨列底部子图高度调整方案

你当前使用的默认plt.subplot接口是按行列等比例切分布局,默认3行高度完全一致,无法单独为某一行设置自定义高度,使用GridSpec自定义网格行高比例即可实现需求,直接替换原有子图初始化代码即可:

import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec

fig = plt.figure(figsize = (16,9))
# 定义3行2列网格,行高比例设置为前两行各占1份,第三行占0.5份(即原高度的一半)
gs = GridSpec(3, 2, height_ratios=[1, 1, 0.5])

ax1 = fig.add_subplot(gs[0, 0])
ax2 = fig.add_subplot(gs[0, 1])
ax3 = fig.add_subplot(gs[1, 0])
ax4 = fig.add_subplot(gs[1, 1])
ax5 = fig.add_subplot(gs[2, :]) # 第三行跨全部两列

补充说明

  • height_ratios传入的是相对高度值,你可以根据实际显示效果调整第三行对应的数值,比如需要原高度1/3就将第三个值改为0.33即可。
  • 该方案完全兼容你原有后续的绘图逻辑,不需要修改已经写好的针对ax1-ax5的绘图、样式设置代码。
  • 渲染后前两行子图布局和你原有效果完全一致,第三行通栏子图高度按设置比例自动缩减,不会存在下半部分冗余空白区域。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:36:18