当前有效matplotlib
版本为:3.4.1
。
概述
arrow()
函数的作用是向子图中添加箭头。
函数的签名为matplotlib.pyplot.arrow(x, y, dx, dy, **kwargs)
。
函数的参数为:
x, y
:箭头尾部的坐标。类型为浮点数。必备参数。dx, dy
:箭头在xy方向的长度。类型为浮点数。必备参数。width
:箭头尾部的宽度。类型为浮点数,默认值为0.001
。head_width
:完全箭头头部的宽度。类型为浮点数或None
,默认值为3*width
。head_length
:完全箭头头部的长度。类型为浮点数或None
,默认值为1.5*head_width
。length_includes_head
:长度是否包含箭头。类型为布尔值,默认值为False
。shape
:箭头的形状,分为全箭头、左半箭头和右半箭头。取值范围为{'full', 'left', 'right'}
,默认值为'full'
。overhang
:箭头头部尾角的倾斜系数(小数)。类型为浮点数,值可为负值或大于1,默认值为0
,即箭头头部为三角形。head_starts_at_zero
:箭头头部的起始位置。类型为布尔值,默认值为False
。当值为True
时,箭头头部从0
坐标开始绘制,当值为False
时,箭头尾部从0
坐标开始绘制。**kwargs
:Patch
对象属性。
返回值为FancyArrow
对象。
案例:演示arrow()
函数
import matplotlib.pyplot as plt
fig,axes=plt.subplots(3,4)
# 默认样式
axes[0,0].arrow(0,0,1,1)
# 设置箭头尾部、头部宽度
axes[0,1].arrow(0,0,1,1,width=0.2,head_width=0.5)
# 设置箭头尾部、头部宽度、箭头头部长度
axes[0,2].arrow(0,0,1,1,width=0.2,head_width=0.5,head_length=0.2)
# 设置箭头尾部、头部宽度、箭头头部长度、长度是否包含箭头头部
axes[0,3].arrow(0,0,1,1,width=0.2,head_width=0.5,head_length=0.2,length_includes_head=True)
# 默认样式
axes[1,0].arrow(0,0,1,1,width=0.2)
# 全箭头
axes[1,1].arrow(0,0,1,1,width=0.2,shape='full')
# 右半箭头
axes[1,2].arrow(0,0,1,1,width=0.2,shape='left')
# 左半箭头
axes[1,3].arrow(0,0,1,1,width=0.2,shape='right')
# 默认样式
axes[2,0].arrow(0,0,1,1,width=0.2)
# 设置箭头尾部倾斜角度
axes[2,1].arrow(0,0,1,1,width=0.2,overhang=0.2)
# 默认样式
axes[2,2].arrow(0,0,1,1,width=0.2)
# 设置箭头起始方式
axes[2,3].arrow(0,0,1,1,width=0.2,head_starts_at_zero=True)
plt.show()
源码
matplotlib.axes
模块
def arrow(self, x, y, dx, dy, **kwargs):
# Strip away units for the underlying patch since units
# do not make sense to most patch-like code
x = self.convert_xunits(x)
y = self.convert_yunits(y)
dx = self.convert_xunits(dx)
dy = self.convert_yunits(dy)
a = mpatches.FancyArrow(x, y, dx, dy, **kwargs)
self.add_patch(a)
self._request_autoscale_view()
return a