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

如何向已有的Matplotlib图形添加跨两行的子图?

解决方案

核心思路

先删除原有第三列的两个子图,再添加一个跨两行的子图,同时保留constrained_layout的自动布局支持。

具体代码实现

from matplotlib import pyplot as plt

# 原有代码创建2行3列子图,开启constrained_layout
fig, axes = plt.subplots(nrows=2, ncols=3, constrained_layout=True)

# 此处为原有业务代码,已完成前4个子图(axes[0,0], axes[0,1], axes[1,0], axes[1,1])的绘制

# 删除第三列的两个默认子图,避免布局冲突
for ax in axes[:, 2]:
    ax.remove()

# 添加跨两行的子图,占据第三列全部位置
# 2行3列布局中,第三列上下位置对应编号3和6,用元组(3,6)指定跨区域
ax5 = fig.add_subplot(2, 3, (3,6))

# 示例:在新子图上绘图
ax5.plot([1,3,5], [2,4,6])
ax5.set_title('跨两行子图')

plt.show()

关键说明

  • ax.remove()用于清理原有第三列的子图,防止新子图与旧布局重叠
  • fig.add_subplot(2, 3, (3,6))的参数中,(3,6)明确指定子图跨越2行3列布局里的第3、6号位置,实现跨两行的效果
  • 保留constrained_layout=True,确保所有子图自动调整间距,无需手动设置边距

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:35:54