在3个点之间绘制箭头

2024-05-23 16:58:10 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 代码importnumpya2matplotliba1asshow
1条回答
网友
1楼 · 发布于 2024-05-23 16:58:10

除非对所需方法有进一步的特殊要求,否则可以使用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(arrow实际上是在hood下创建的)中找到。

请注意,箭头可能不在绘图范围内,因为显然pyplot不必调整绘图的x/y限制来显示它们。您可能需要通过plt.xlimplt.ylim亲自完成此操作。

相关问题 更多 >