我正在尝试在 matplotlib 中的三点之间绘制箭头。
假设我们在 2d 中有 3 个任意点 (A1,A2,A3),我们想绘制从 A1 到 A2 以及从 A2 到 A3 的箭头。
一些代码来说明:
import numpy as np
import matplotlib.pyplot as plt
A1=np.array([10,23])
A2=np.array([20,30])
A3=np.array([45,78])
drawArrow(A1,A2);
drawArrow(A2,A3);
plt.show();
我们如何编写函数 drawArrow(tailCoord,headCoord) 来接收箭头尾部和头部的坐标并绘制它?
最佳答案
除非您对所需方法有进一步的特殊要求,否则您可以使用 pyplot's arrow function ,例如:
def drawArrow(A, B):
plt.arrow(A[0], A[1], B[0] - A[0], B[1] - A[1],
head_width=3, length_includes_head=True)
API 提到了一些更多的关键字参数;更多样式选项可以在 the API for FancyArrow 中找到(这是箭头在引擎盖下实际创建的内容)。
请注意,箭头可能偏离绘图,因为显然 pyplot 不一定会调整绘图的 x/y 限制来显示它们。您可能必须通过 plt.xlim 自己执行此操作和 plt.ylim .
关于python - 在 3 点之间绘制箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13120892/