matplotlib.axes.Axes.annotate#

Axes.annotate(text, xy, xytext=None, xycoords='data', textcoords=None, arrowprops=None, annotation_clip=None, **kwargs)[source]#

用文本 text 注释点 xy

最简单的形式是,文本放置在 *xy* 处。

可选地,文本可以显示在另一个位置 *xytext*。然后可以通过定义 *arrowprops* 来添加一个从文本指向被标注点 *xy* 的箭头。

参数:
textstr

标注的文本内容。

xy(float, float)

要标注的点 *(x, y)*。坐标系统由 *xycoords* 决定。

xytext(float, float),默认值: *xy*

放置文本的位置 *(x, y)*。坐标系统由 *textcoords* 决定。

xycoords单个或两个字符串元组,或 ArtistTransform 或可调用对象,默认值: 'data'

给出 *xy* 的坐标系统。支持以下类型的值:

  • 以下字符串之一

    描述

    'figure points'

    从图形左下角开始的点

    'figure pixels'

    从图形左下角开始的像素

    'figure fraction'

    从图形左下角开始的比例

    'subfigure points'

    从子图左下角开始的点

    'subfigure pixels'

    从子图左下角开始的像素

    'subfigure fraction'

    从子图左下角开始的比例

    'axes points'

    从坐标系左下角开始的点

    'axes pixels'

    从坐标系左下角开始的像素

    'axes fraction'

    从坐标系左下角开始的比例

    'data'

    使用被标注对象的坐标系统(默认)

    'polar'

    如果不是原生 'data' 坐标,则为 *(theta, r)*

    请注意,对于父图形,'subfigure pixels' 和 'figure pixels' 是相同的,因此希望代码可在子图中使用的用户可以使用 'subfigure pixels'。

  • 一个 Artist:*xy* 被解释为艺术家 Bbox 的一部分。例如,*(0, 0)* 是包围盒的左下角,*(0.5, 1)* 是包围盒的中心顶部。

  • 一个 Transform 用于将 *xy* 转换为屏幕坐标。

  • 具有以下签名之一的函数

    def transform(renderer) -> Bbox
    def transform(renderer) -> Transform
    

    其中 *renderer* 是 RendererBase 的子类。

    函数的结果被解释为与上述 ArtistTransform 情况类似。

  • 一个元组 *(xcoords, ycoords)*,为 *x* 和 *y* 指定独立的坐标系统。*xcoords* 和 *ycoords* 都必须是上述类型之一。

有关更多详细信息,请参阅 高级标注

textcoords单个或两个字符串元组,或 ArtistTransform 或可调用对象,默认值: *xycoords* 的值

给出 *xytext* 的坐标系统。

所有 *xycoords* 值均有效,以及以下字符串:

描述

'offset points'

与 *xy* 值之间的偏移量(单位:点)

'offset pixels'

与 *xy* 值之间的偏移量(单位:像素)

'offset fontsize'

与 *xy* 值之间的偏移量(相对于字体大小)

arrowpropsdict,可选

用于在 *xy* 和 *xytext* 位置之间绘制 FancyArrowPatch 箭头的属性。默认为 None,即不绘制箭头。

出于历史原因,有两种不同的方式指定箭头:“简单”和“花式”

简单箭头

如果 *arrowprops* 不包含键 'arrowstyle',则允许的键为:

描述

width

箭头的宽度(单位:点)

headwidth

箭头头部底部的宽度(单位:点)

headlength

箭头头部的长度(单位:点)

shrink

从两端收缩的总长度比例

?

任何 FancyArrowPatch 属性

箭头附着在文本框的边缘,确切位置(角或中心)取决于其指向。

花式箭头

如果 *arrowprops* 中提供了 'arrowstyle',则使用此选项。

有效键是以下 FancyArrowPatch 参数:

描述

arrowstyle

箭头样式

connectionstyle

连接样式

relpos

见下文;默认值为 (0.5, 0.5)

patchA

默认为文本的包围盒

patchB

默认为 None

shrinkA

单位:点。默认值:2 点

shrinkB

单位:点。默认值:2 点

mutation_scale

默认为文本大小(单位:点)

mutation_aspect

默认值为 1

?

任何 FancyArrowPatch 属性

箭头的确切起点位置由 *relpos* 定义。它是一个文本框相对坐标的元组,其中 (0, 0) 是左下角,(1, 1) 是右上角。支持 <0 和 >1 的值,用于指定文本框外的点。默认值为 (0.5, 0.5),因此起点位于文本框的中心。

annotation_clip布尔值或 None,默认值: None

当标注点 *xy* 在坐标系区域之外时,是否剪裁(即不绘制)标注。

  • 如果为 *True*,当 *xy* 在坐标系之外时,标注将被剪裁。

  • 如果为 *False*,标注将始终被绘制。

  • 如果为 *None*,当 *xy* 在坐标系之外且 *xycoords* 为 'data' 时,标注将被剪裁。

**kwargs

额外的 kwargs 将传递给 Text

返回:
标注

另请参阅

注解

使用 matplotlib.axes.Axes.annotate 的示例#

简单轴填充

简单轴填充

锥形图

锥形图

带线条、日期和文本的时间线

带线条、日期和文本的时间线

路径效果演示

路径效果演示

带标签的饼图和甜甜圈图

带标签的饼图和甜甜圈图

嗯…甜甜圈!!!

嗯…甜甜圈!!!

XKCD

XKCD

石川图

石川图

使用 subplots 和 GridSpec 组合两个子图

使用 subplots 和 GridSpec 组合两个子图

比例不变角度标签

比例不变角度标签

注释变换

注释变换

注释图

注释图

注释图表

注释图表

注释极坐标图

注释极坐标图

注释箭头样式参考

注释箭头样式参考

标注子图

标注子图

连接具有不同属性的文本对象

连接具有不同属性的文本对象

使用 TeX 渲染数学方程

使用 TeX 渲染数学方程

文本属性

文本属性

带单位的注释

带单位的注释

使用 blitting 提高渲染速度

使用 blitting 提高渲染速度

变换教程

变换教程

快速入门指南

快速入门指南

注解

注解

Matplotlib 中的文本

Matplotlib 中的文本