Matplotlib绘制的quiver箭头与x、y轴刻度数值不对齐怎么解决
你遇到的箭头和坐标轴刻度不对齐的问题,是matplotlib.pyplot.quiver的默认缩放机制导致的,默认状态下箭头长度不会和坐标轴单位直接对应,只需要在调用quiver时添加3个参数即可解决,修改后的完整代码如下:
from numpy import array from math import * import matplotlib.pyplot as plt u = [1,0] v = [0,1] ax = plt.axes() ax.set_xlim([-1,5]) ax.set_ylim([-1,5]) # 新增三个参数控制箭头对齐坐标轴刻度 ax.quiver(0,0,u[0],u[1],color='red', angles='xy', scale_units='xy', scale=1) ax.quiver(0,0,v[0],v[1],color='blue', angles='xy', scale_units='xy', scale=1) plt.show()
新增参数说明:
angles='xy':指定箭头的角度基于x、y轴的坐标比例计算,避免坐标轴比例变化时箭头指向偏移scale_units='xy':设置箭头长度的缩放参考单位为坐标轴的坐标单位scale=1:缩放比例设为1,即你传入的向量长度数值会直接对应坐标轴上的单位长度,比如传入向量[1,0]时,箭头终点刚好落在x轴刻度1的位置
内容的提问来源于stack exchange,提问作者Davido
相关产品推荐
相关产品推荐

