matplotlib.pyplot.quiver
函数获取一组“原点”点和一组“目标”点,并绘制从“原点”点开始朝着“目标”点方向的箭头束。但是,有一个比例因子,因此箭头不一定会在“目标”点处结束,而只是指向该方向。
例如
import matplotlib.pyplot as plt
import numpy as np
pts = np.array([[1, 2], [3, 4]])
end_pts = np.array([[2, 4], [6, 8]])
plt.quiver(pts[:,0], pts[:,1], end_pts[:,0], end_pts[:,1])
请注意,左下角的矢量从(1,2)(我想要)开始,但没有以(2,4)结束。这由scale
函数的quiver
参数控制,该参数可使箭头变长或变短。如何使箭头精确到(2,4)?
答案 0 :(得分:1)
要在x-y平面上绘制矢量(其中u和v与x和y的单位相同),请使用
angles='xy', scale_units='xy', scale=1
。
但是请注意,u
和v
是相对于该位置理解的。因此,您需要先考虑差异。
import matplotlib.pyplot as plt
import numpy as np
pts = np.array([[1, 2], [3, 4]])
end_pts = np.array([[2, 4], [6, 8]])
diff = end_pts - pts
plt.quiver(pts[:,0], pts[:,1], diff[:,0], diff[:,1],
angles='xy', scale_units='xy', scale=1.)
plt.show()