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

matplotlib.patches.Rectangle调用set_angle报错无angle属性如何解决

报错原因

你遇到的属性报错是因为所使用的matplotlib版本低于3.4.0,angle属性和对应的set_angle()方法是matplotlib 3.4.0版本才正式加入Rectangle类的特性,旧版本不支持该调用。

解决方案

方案1:升级matplotlib版本(推荐)

直接执行升级命令即可兼容官方文档标注的set_angle用法:

pip install --upgrade matplotlib

升级完成后你示例中注释的patch.set_angle(70.)代码即可正常运行。

方案2:低版本兼容方案(无法升级时使用)

如果受环境限制不能升级matplotlib,可以通过旋转变换实现矩形朝向调整:

import matplotlib.pyplot as plt
import matplotlib.patches as patches
from matplotlib.transforms import Affine2D

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

# 初始化矩形时不传入角度参数
patch = patches.Rectangle([0.5, 0.5], 0.3, 0.1, edgecolor='black', linewidth=2, fc='r')
ax.add_patch(patch)

# 调整尺寸
patch.set_width(0.4)
patch.set_height(0.2)

# 定义旋转变换:绕矩形左下角点(即初始化的xy坐标)旋转70度
rotate_transform = Affine2D().rotate_deg_around(0.5, 0.5, 70) + ax.transData
patch.set_transform(rotate_transform)

plt.show()

如果后续修改了矩形的xy坐标,同步修改rotate_deg_around的前两个锚点参数即可。

额外提示

你提供的示例代码中plt.show缺少调用括号,修正为plt.show()才能正常弹出绘图窗口。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:18:03