matplotlib之pyplot模块——添加文本、注解(text、annotate)

本文详细比较了matplotlib中的text函数和annotate函数,介绍了它们的签名、参数和功能差异。text用于指定坐标点添加文本,而annotate除了基本文本注解外,还能设置注解位置并添加指向数据点的箭头。通过实例展示了两者在实际操作中的不同用途。
该文章已生成可运行项目,

概述

text函数作用是根据xy坐标向图像添加文本。
annotate函数作用是根据xy坐标向图像添加文本注解。
两者非常相似,但是又有一定差别。

text函数概述

text函数的签名为:matplotlib.pyplot.text(x, y, s, fontdict=None, **kwargs)

参数说明如下:

  • xy:放置文本的坐标。浮点数。必备参数。
  • s:文本。字符串。必备参数。
  • fontdict:字体属性字典,用于覆盖默认文本的字体属性。字典。默认值为None,应用rcParams中的字体属性。可选参数。
  • **kwargsText对象的相关属性。

text函数的返回值为Text对象。

annotate函数概述

annotate函数的签名为:matplotlib.pyplot.annotate(text, xy, *args, **kwargs))

参数说明如下:

  • text:注解文本。字符串。必备参数。

  • xy:需要注解的坐标,使用xycoords参数确定的坐标系。浮点数元组。必备参数。

  • xycoords:设置xy参数所使用的坐标系。字符串、Artist Transform 、可调用对象、 (float, float)。默认值为'data',即被注解对象的坐标系。可选参数。

    说明
    ‘figure points’相对于图像左下角的点数(points)
    ‘figure pixels’相对于图像左下角的像素数(pixels)
    ‘figure fraction’相对于图像左下角的比例((0, 0) 为图像左下角 (1, 1) 为右上角)
    ‘axes points’相对于子图左下角的点数(points)
    ‘axes pixels’相对于子图左下角的像素数(pixels)
    ‘axes fraction’相对于子图左下角的比例
    ‘data’默认值,使用被注解对象的坐标系
    ‘polar’(theta, r)
  • xytext:放置注解文本的坐标。浮点数元组。默认值为xy。必备参数。

  • textcoords:设置xytext所使用的的坐标系。字符串、Artist Transform 、可调用对象、 (float, float)。默认值为xycoords参数。

    说明
    ‘offset points’xy参数值的偏移量,单位为点(points)
    ‘offset pixels’xy参数值的偏移量,单位为像素(pixels)
  • annotation_clip:当注解超出子图区域后是否绘制。布尔值或None。默认值为None。可选参数。

    • True:只有当xy坐标位于子图之内才绘制注解。
    • False:不检测xy坐标位置,一直绘制注解。
    • None:只有当xy坐标位于子图之内才绘制注解,且xycoords 参数值为'data'
  • **kwargsText对象的相关属性。

  • arrowprops:被注解坐标点xy与注解文本位置xytext之间的箭头属性。字典, FancyArrowPatch对象属性。默认值为None,即不绘制箭头。可选参数。
    FancyArrowPatch相关属性如下:

text函数的返回值为Annotation对象。

text函数和annotate函数的对比

根据下面的示例可知:

  • text函数可在指定坐标点绘制文本。
  • annotate函数如果只使用textxy参数,那么功能与text函数类似。
    但是annotate函数可以独立设置注解文本的位置,还可以添加需要注解的数据坐标与注解文本之间的箭头。

在这里插入图片描述

import matplotlib.pyplot as plt

plt.xlim(0,5)
plt.ylim(0,5)
# 绘制3个坐标点
plt.plot((3,3,3),(1,2,3),'o')
# 使用text函数设置文本
plt.text(3,1,'text')
# 使用annotate函数必备参数绘制注解
plt.annotate('annotate', xy=(3, 2))
# 使用annotate函数绘制注解,添加指示箭头
plt.annotate('annotate', xy=(3, 3), xytext=(4,3),
            arrowprops=dict(arrowstyle='->',facecolor='black')
            )
plt.show()
本文章已经生成可运行项目
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值