matplotlib之pyplot模块——向子图添加箭头(arrow())

当前有效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坐标开始绘制。
  • **kwargsPatch对象属性。

返回值为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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值