使用FancyArrowPatch绘制经过选定点的箭头

时间:2019-04-02 09:17:46

标签: python-3.x matplotlib

我正在尝试找到一种绘制箭头的方式,该箭头穿过我事先选择的点,我希望能够自由设置箭头的尾巴宽度和颜色。

我去查看了matplotlib中的FancyArrowPatch库,我已经使用它来绘制从一个点到另一个点的箭头。但是,我不能令人满意地使用它。

例如,我正尝试在以下代码中绘制箭头,从(-10,0)到(0,9)并通过(-5,9)。

import matplotlib.pyplot as plt
import matplotlib.patches as mpatch
import matplotlib.path as mpath


style = "simple,tail_width=10,head_width=30,head_length=60"
kw = dict(arrowstyle=style,color="#49107C")
Arrow = mpatch.FancyArrowPatch(path=mpath.Path([(-10,0),(-5,9),(0,9)],
mpath.Path.MOVETO,mpath.Path.CURVE3,mpath.Path.CURVE3]),**kw)
plt.gca().add_patch(Arrow)

运行该代码后,我没有得到预期的结果:即使我的箭头是弯曲的,实际上从(-10,0)开始到(0,9)结束,它也没有通过(- 5,9)。

这就是我得到的:https://i.imgur.com/QwPgmM2.png

enter image description here

我想知道是否可以通过该库解决此问题,或者是否必须使用另一个库来获得所需的内容。

另一方面,我还希望能够绘制一条弯曲的箭头,该箭头在经过一个点之后将返回到准确的起点(例如,从(0,0)点,转到(2,2),然后回到(0,0)。)

预先感谢您的帮助!

0 个答案:

没有答案