如何确定Matplotlib中quiver函数绘制箭头的终点位置
确定plt.quiver箭头终点位置的方法
在Matplotlib的plt.quiver中,箭头终点的计算取决于缩放相关参数的设置,以下是精准计算的核心场景:
1. 手动关闭自动缩放,直接对应坐标偏移
如果你想让u、v直接代表从起点(x,y)出发的坐标增量,调用quiver时指定scale=1和scale_units='xy'即可:
q = plt.quiver(x, y, u, v, color, scale=1, scale_units='xy')
此时箭头的终点坐标为:
- 终点x坐标:
x + u - 终点y坐标:
y + v
这种模式下,u和v的数值直接对应坐标轴上的数值偏移,完全可控。
2. 默认自动缩放场景下的精准计算
默认状态下,Matplotlib会根据当前坐标轴范围自动缩放箭头长度,此时u、v不是直接的坐标偏移,需要结合quiver实例的缩放因子计算:
- 先获取quiver对象:
q = plt.quiver(x, y, u, v, color)
- 获取自动计算的缩放因子
q.scale,再推导终点:
- 终点x坐标:
x + u / q.scale - 终点y坐标:
y + v / q.scale
验证方法
可以用散点图标记计算出的终点,验证是否与箭头末端重合:
# 计算终点 end_x = x + u / q.scale end_y = y + v / q.scale # 绘制终点标记 plt.scatter(end_x, end_y, c='red', s=20) plt.show()
内容的提问来源于stack exchange,提问作者Hana
相关产品推荐
相关产品推荐

