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

如何在Matplotlib中创建5个带指定坐标轴范围的垂直堆叠正方形比例子图?

实现垂直堆叠的正方形Matplotlib子图

以下是直接可运行的代码,帮你创建5个垂直堆叠的正方形比例子图:

import matplotlib.pyplot as plt

# 创建5行1列的子图布局,调整figsize让整体显示更舒适
fig, axes = plt.subplots(nrows=5, ncols=1, figsize=(5, 25))

# 遍历每个子图进行设置
for ax in axes:
    # 设置x轴和y轴范围
    ax.set_xlim(0, 100)
    ax.set_ylim(50, 1000)
    
    # 关键:设置子图为正方形比例
    # aspect = x轴范围 / y轴范围,这样x和y方向的单位长度视觉上相等
    x_range = 100 - 0
    y_range = 1000 - 50
    ax.set_aspect(x_range / y_range)
    
    # 可选:添加示例内容,方便查看效果
    ax.plot([0, 100], [50, 1000], color='gray', linestyle='--')

# 调整子图间距,避免重叠
plt.tight_layout()
plt.show()

关键说明:

  • plt.subplots(nrows=5, ncols=1):快速创建5个垂直排列的子图,axes是包含所有子图对象的列表
  • set_xlim/set_ylim:严格设置每个子图的坐标轴范围
  • set_aspect(x_range/y_range):这是让子图呈现正方形的核心。Matplotlib的aspect参数定义的是y轴单位长度与x轴单位长度的比值,所以用x轴的总范围除以y轴的总范围,就能让子图的视觉形状为正方形
  • figsize=(5,25):根据子图数量调整画布大小,保证每个子图都能清晰显示
  • tight_layout():自动调整子图间距,避免标签、标题重叠

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 22:47:22