在3点之间绘制箭头

时间:2012-10-29 11:38:51

标签: python matplotlib visualization

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

1 个答案:

答案 0 :(得分:5)

除非您对所需方法有进一步的特殊要求,否则可以使用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.xlimplt.ylim完成此操作。