python - 在 3 点之间绘制箭头

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

最佳答案

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

关于python - 在 3 点之间绘制箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13120892/

相关文章:

python - 如何在 python 中避免使用 eval

python - sympy:手动修改表达式

python - 在 matplotlib 中制作高度为 0 的透明色条

visualization - 可视化 friend 的 friend (foaf) 图

javascript - 将数据结构分配给 Chartjs 属性,而不是单独分配

python - 在 matplotlib 中使用 3D 数据生成热图

python - 无法让多个 uwsgi worker 与 flask-socketio 一起工作

python - matplot python 直方图中缺少最后一个 bin

python - 图像的 RGB 立方体

python - 在 Python exe 中调用子进程脚本的最佳方法