我试图在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)来接收尾部坐标和箭头并绘制它?
答案 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.xlim和plt.ylim完成此操作。