我正在尝试在Matplotlib中调整箭头的headwidth
。
这是一个工作代码:
import numpy as np
import matplotlib.pyplot as plt
t = np.linspace(0,2*np.pi,500)
y = np.sin(t)
fig = plt.figure(figsize=(10,5))
ax = fig.add_subplot(111)
ax.plot(t,y)
ax.annotate('', xy=(1, -1), xytext=(2, 0),
arrowprops=dict(arrowstyle='<->', facecolor='black'))
并绘制了一个漂亮的双向箭头,如图所示。现在,当我想通过以下方式更改
headwidth
时:ax.annotate('', xy=(1, -1), xytext=(2, 0),
arrowprops=dict(arrowstyle='<->', facecolor='black',headwidth=10))
或者
ax.annotate('', xy=(1, -1), xytext=(2, 0),
arrowprops=dict(arrowstyle='<->', facecolor='black',head_width=10))
返回的错误是:
AttributeError: Unknown property headwidth
或者
AttributeError: Unknown property head_width
有没有出路?
最佳答案
当在arrowprops字典中指定arrowstyle
时,您将获得FancyArrowPatch而不是YAArrow的实例,后者使用不同的关键字(但是,您可能已经知道尝试使用head_width
)。从文档中直觉的是,当您指定具有默认头部设置等的arrowstyle时,可以在arrowstyle字符串中修改这些特定设置。这是文档here(强调我的)中的相关行:
如果将字典更改为以下内容,它将起作用:
arrowprops=dict(arrowstyle='<->, head_width=10', facecolor='black')
请注意,head_width规范位于样式后面逗号后的字符串中。 除了: 10对于那个人来说是一个相当大的数字.... 0.5可能更好!
关于python - Matplotlib未知属性 “headwidth”和 “head_width”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27598976/