python-3.x - 使用 FancyArrowPatch 绘制穿过选定点的箭头
问题描述
我正在尝试找到一种方法来绘制穿过我预先选择的点的箭头,并且我希望能够自由设置尾部宽度和该箭头的颜色。
我去查看 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
我想知道是否有办法用那个库来解决这个问题,或者我是否必须使用另一个库来获得我想要的东西。
另一方面,我还希望能够绘制一个弯曲的箭头,该箭头在经过一个点后会返回到确切的起点(例如,从 (0, 0) 指向 (2,2) 并返回 (0,0)。)
预先感谢您的帮助 !
解决方案
推荐阅读
- excel - 基于无颜色删除选项卡
- angular - Primeng p-table:如何重置自定义过滤器?调用 reset() 会重置表,但我的过滤器的值保持不变
- servicestack - HostContext.TryGetCurrentRequest() 在 Docker 容器中始终为空 - ServiceStack
- javascript - setState 没有合并值
- ios - 可可豆荚更新破坏了一些东西,现在“豆荚更新”会产生错误
- python - Python AWS Boto3 SAML 身份验证错误
- mysql - MySQL 到 MariaDB - INSERT INTO with WHERE NOT EXIST
- java - Java 中是否有替代 TimeZone.getTimeZone() 的方法?
- c# - EF Core - 为具有 id = 0 的外键的实体返回 null
- amazon-web-services - 第三方上传的对象受 IP 范围限制的 S3 公共读取访问权限