如何使用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
相关产品推荐
相关产品推荐

