在3点之间绘制箭头

MHa*_*rdy 5 python visualization matplotlib

我试图在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();
Run Code Online (Sandbox Code Playgroud)

我们如何编写一个函数drawArrow(tailCoord,headCoord)来接收尾部坐标和箭头并绘制它?

Han*_*ans 5

除非您对所需方法有进一步的特殊要求,否则可以使用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)
Run Code Online (Sandbox Code Playgroud)

API提到了一些关键字参数; 在FancyArrow的API中可以找到更多的样式选项(箭头实际上是在引擎盖下创建的).

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