在绘制箭头时设置短划线长度

时间:2014-04-24 09:29:19

标签: python matplotlib

使用matplotlib,可以使用

轻松绘制具有自定义短划线样式的线条
plt.plot([0, 5], [0, 5], dashes=(20.0, 20.0))
plt.show()

lines = plt.plot([0, 5], [0, 5])
lines[0].set_dashes((20.0, 20.0))
plt.show()

虽然可以用虚线样式绘制箭头

plt.arrow(0, 0, 5, 5, linestyle='dashed')
plt.show()

我似乎无法弄清楚如何使用自定义短划线样式绘制箭头

arrow = plt.arrow(0, 0, 5, 5)
?
plt.show()

使用绘图函数的dashes参数给出

AttributeError: 'FancyArrow' object has no attribute 'set_dashes'

并且错误提到返回的FancyArrow没有set_dashes()方法。有可能吗?

2 个答案:

答案 0 :(得分:0)

目前,我认为不可能,因为Arrow课程仅支持'solid' | 'dashed' | 'dashdot' | 'dotted'四种不同的线型。为了能够使用自定义的破折号样式,该对象必须具有._dashSeq缺少的Arrow属性。因此,我可以看到.set_dashes

的原因

话虽如此,目前即使为.set_linestyle提供Arrow方法,您也可以设置为除上面列出的4种风格之外的任何其他内容。这意味着.set_linestyle('-')之类的东西是不可能的。

答案 1 :(得分:0)

您可以传递一个(offset,onoffseq),其中onoffseq是一个以点为单位的均匀长度的on和off墨水元组。参见set_linestyle

例如ax.arrow(0,0,2,2,linestyle =(5,(3,3)))。