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

如何使用matplotlib绘制矩形与正方形?代码运行异常问题咨询

matplotlib绘制矩形异常问题修复方案

问题根因

两个异常现象的原因非常明确:

  • 空白画布:你设置的坐标轴显示范围xlim=[1.2, 2.5]、ylim=[1.5, 3.7]完全覆盖不到绘制的矩形区域:两个矩形的左下角都在(0.1, 0.1),最大宽高仅为0.8,右上角坐标也才到(0.9, 0.9),整体都在显示区域外
  • 坐标轴范围不符合预期:如果删除坐标轴范围配置,matplotlib会自动匹配绘制内容的坐标范围,默认只会显示01左右的区间,自然不会出现你想要的13范围

修正代码(适配1~3坐标轴范围需求)

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle

# 4*4演示数组
X = np.arange(16).reshape(4, 4)

fig = plt.figure()
ax = fig.add_subplot(111)

# 可选:放开下方注释显示灰度数组,加origin='lower'匹配常规坐标系原点在左下角的规则
# ax.imshow(X, cmap = plt.cm.gray, interpolation ='nearest', origin='lower')

# 调整矩形坐标适配1~3的坐标轴范围
ax.add_patch(Rectangle((1.2, 1.2),
                        0.8, 0.8,
                        fc ='none', 
                        ec ='orange',
                        lw = 10) )
ax.add_patch(Rectangle((1.2, 1.2),
                       1.5, 1.5,
                       fc = 'none',
                       ec = 'b',
                       lw = 10) )

plt.title("Rectangles")
# 设置预期的1~3坐标轴范围
ax.set_xlim([1, 3])
ax.set_ylim([1, 3])

plt.xlabel("x - axis")
plt.ylabel("y - axis")

plt.show()

改动说明

  • 调整了矩形的左下角坐标、宽高参数,确保图形落在1~3的显示区间内
  • 修正坐标轴范围配置为你预期的1~3区间
  • 若需要搭配你的4*4数组显示,可放开imshow的注释,建议补充origin='lower'参数匹配常规坐标系逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:39:03