matplotlib.patches.FancyArrow已经削减了尾部

时间:2017-04-24 10:47:54

标签: python matplotlib

执行此代码时:

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')

我得到以下输出:

enter image description here

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

我的matplotlib版本是2.0.0。

1 个答案:

答案 0 :(得分:3)

这似乎是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()

enter image description here