当我执行此代码时:

plt.figure(figsize=(3,3))
plt.xlim(-3, 3); plt.ylim(-3,3);
plt.arrow(0,0, 2, 2, head_length=1.4, head_width=1.8, width=1.4,
   alpha=0.2, length_includes_head=True, fc='r')

我得到以下输出:

python - matplotlib.patches.FancyArrow 的尾部变细了-LMLPHP

但是我不希望尾部缩小。在我的另一台电脑上,我没有这个问题。有人知道如何解决吗?

我的 matplotlib 版本是 2.0.0。

最佳答案

这似乎是 arrow 中的某种错误。您会期望有一个 tail_width 参数来设置箭头(或其尾部)的宽度。然而这并不存在。

作为一种解决方法,您可以使用需要手动添加到轴的 FancyArrowPatchFancyArrowPatch 有一个参数 arrowstyle,您可以向其提供一串参数。在这个字符串中 "tail_width" 被正确识别。

import matplotlib.pyplot as plt
import matplotlib.patches as patches

plt.figure(figsize=(3,3))
plt.xlim(-3, 3); plt.ylim(-3,3);

style="Simple,head_length=28,head_width=36,tail_width=20"
plt.gca().add_patch(
        patches.FancyArrowPatch((0,0), (2,2),arrowstyle=style,alpha=0.2,fc='r' ))

plt.show()

python - matplotlib.patches.FancyArrow 的尾部变细了-LMLPHP

关于python - matplotlib.patches.FancyArrow 的尾部变细了,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43586086/

10-12 18:23