6

我正在尝试在 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) 来接收箭头尾部和头部的坐标并绘制它?

4

1 回答 1

6

除非您对所需方法有进一步的特殊要求,否则可以使用pyplot 的箭头函数,例如:

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 提到了更多的关键字参数;在FancyArrow 的 API 中可以找到更多样式选项(这是箭头在引擎盖下实际创建的内容)。

请注意,箭头可能不在绘图,因为显然 pyplot 不一定会调整绘图的 x/y 限制来显示它们。您可能必须通过plt.xlimplt.ylim自己执行此操作。

于 2012-10-29T15:40:19.353 回答