该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])
Run Code Online (Sandbox Code Playgroud)
请注意,左下角的向量从 (1,2) 开始(我想要的),但不结束于 (2,4)。这是由使箭头变长或变短的函数scale参数控制的。quiver如何让箭头精确地结束于 (2,4)?
箭袋文档指出
要在 xy 平面上绘制向量,其中 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()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2051 次 |
| 最近记录: |