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

如何用Subplot与GridSpec调整子图位置尺寸?实现2×10正方形子图

解决2×10正方形子图无间隙布局问题

要实现你需要的效果,需调整画布尺寸、子图间隙并强制子图为正方形,修改后的代码如下:

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

# 设置画布尺寸:对应10列2行的比例,宽度为高度的5倍(10/2)
fig = plt.figure(figsize=(10, 2))
# 配置GridSpec,设置极小的上下/左右间隙
gs1 = GridSpec(2, 10, hspace=0.05, wspace=0.05)

for a in range(10):
    # 第一行子图
    ax = plt.subplot(gs1[0, a])
    ax.set_aspect('equal')  # 强制子图为正方形
    ax.axis('off')  # 隐藏坐标轴(不需要可删除)
    
    # 第二行子图
    ax2 = plt.subplot(gs1[1, a])
    ax2.set_aspect('equal')
    ax2.axis('off')

plt.tight_layout()  # 自动调整布局,避免边缘内容被裁剪
plt.show()

关键调整说明:

  • 画布尺寸适配:figsize=(10,2) 匹配10列2行的子图比例,避免画布比例失衡导致子图被拉伸为矩形。
  • 极小间隙设置:hspace和wspace参数设为0.05(可改为0实现完全无间隙),控制子图间的空白间隔。
  • 正方形强制:set_aspect('equal') 确保每个子图宽高比为1,无论画布如何缩放,子图始终保持正方形。
  • 坐标轴隐藏:axis('off') 移除多余的坐标轴元素,让图片展示更整洁,若需保留坐标轴可删除该行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:15:37