📜  Python中的 Matplotlib.axes.Axes.annotate()(1)

📅  最后修改于: 2023-12-03 14:46:33.479000             🧑  作者: Mango

Matplotlib.axes.Axes.annotate()

函数签名:annotate(self, s, xy, *args, **kwargs)

annotate()方法是Matplotlib库中Axes类的一个方法,用于在绘图区域上添加文本注释。它可以用于在图表中标记数据点、添加标题、解释数据点等。该方法在Matplotlib中非常常用,几乎可以用于绘制所有类型的图表。

参数说明

annotate()方法的参数如下:

  • s:要添加的注释文本,可以是字符串或者其他可转换为字符串的对象。
  • xy:一个元组,表示注释所在的点的(x, y)坐标。注释的箭头会指向该点。
  • *args:可选参数列表,用于设置注释的方向、颜色、透明度等。可以是以下类型:
    • xytext:注释文本的坐标,默认为与xy相同。
    • xycoords:xy的坐标系类型,默认为'data',表示与数据坐标系相对。
    • textcoords:注释文本的坐标系类型,默认为'axes fraction',表示与图表坐标系相对。
    • arrowprops:字典类型,用于设置注释箭头的样式。参见下一节中的详细说明。
  • **kwargs:可选关键字参数,用于设置注释的文本属性,比如字体大小、颜色、加粗等。参见下一节中的详细说明。

注释箭头的样式

arrowprops参数中,可以通过设置各种属性来调整注释箭头的样式。常用的属性包括:

  • arrowstyle:箭头的形状,默认为'->'。可以是以下值之一:
    • '->':正常箭头
    • '-[':带]的箭头
    • '-|>':带尖端的箭头
    • ']-[':带尖端和中心装饰的箭头
  • connectionstyle:箭头和文本之间的连接线的样式,默认为'arc3'。可以是以下值之一:
    • 'angle':直角连接线
    • 'angle3':倾斜的连接线
    • 'arc':弧形连接线
    • 'bar':横向连接线
    • 'round':圆形连接线
  • color:箭头的颜色,默认为'black'。
  • linewidth:箭头的线宽,默认为None,表示使用轴线的线宽。

文本属性设置

annotate()方法中,可以使用可选关键字参数来设置注释的文本属性。常用的参数包括:

  • fontsize:文本的字体大小,默认为None。
  • fontweight:文本的字体粗细,默认为None。
  • fontstyle:文本的字体风格,默认为None。
  • color:文本的颜色,默认为'black'。
  • horizontalalignment:文本的水平对齐方式,默认为'center'。可以是以下值之一:
    • 'center':居中对齐
    • 'left':左对齐
    • 'right':右对齐
  • verticalalignment:文本的垂直对齐方式,默认为'center'。可以是以下值之一:
    • 'center':居中对齐
    • 'top':上对齐
    • 'bottom':下对齐

示例

以下是一个使用annotate()方法的示例,用于绘制一张柱状图并对其中的数据点添加注释:

import matplotlib.pyplot as plt

data = [4, 7, 2, 5]
categories = ['A', 'B', 'C', 'D']

fig, ax = plt.subplots()
ax.bar(categories, data)

for i, d in enumerate(data):
    ax.annotate(str(d), xy=(i, d), xytext=(i, d+0.5), color='red',
                fontsize=10, fontweight='bold',
                horizontalalignment='center', verticalalignment='bottom',
                arrowprops={'arrowstyle': '->', 'linewidth': 1.5, 'color': 'blue'})

plt.show()

以上代码会生成一张柱状图,其中每个数据点都会以红色文本的形式添加到相应的柱子上方,并带有蓝色箭头。