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

使用Matplotlib在同一画布绘制多个箭头触发TypeError报错问题

问题原因定位

代码触发报错+无法实现同画布绘图的原因有两个:

  • 参数传递不符合plt.arrow()的接口要求:该方法必填的4个位置参数依次为起点x坐标、起点y坐标、x方向延伸长度、y方向延伸长度,原代码直接传入存储坐标、偏移量的二元组,没有将元组内的数值拆分为独立参数传入,导致程序识别到仅传入2个位置参数,缺失dx、dy两个必填项,抛出类型错误。
  • 画布展示语句位置错误:原代码将plt.show()写在for循环内部,每绘制一个箭头就会生成独立画布弹出,无法实现单画布展示所有箭头的需求。
修正后可运行代码
import matplotlib.pyplot as plt

I6 = [
    [(0.5, -0.5), (1.0, 0.0)],
    [(0.5, -0.5), (0.0, -1.0)],
    [(1.5, -0.5), (0.0, -1.0)],
    [(0.5, -1.5), (1.0, 0.0)]
]

for item in I6:
    # 拆分起点坐标、方向偏移量
    x, y = item[0]
    dx, dy = item[1]
    plt.arrow(x, y, dx, dy, width=0.05)

# 调整坐标轴范围,保证所有箭头完整显示
plt.xlim(0, 2)
plt.ylim(-3, 0)
# 所有元素绘制完成后统一展示画布
plt.show()

运行后即可在同一个画布上看到4个按I6定义绘制的箭头。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 05:18:53