matplotLib在图中标出最后一个点的值

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np

# 生成100个随机数据
data = np.random.rand(100)

# 绘制数据
plt.plot(data, label='Data Points')

# 获取最后一个数据点的位置和值
last_x = len(data) - 1
last_y = data[-1]

# 用红圈标出最后一个点
plt.plot(last_x, last_y, 'ro')

# 在图上标出最后一个点的值
plt.annotate(f'{last_y:.2f}',
             xy=(last_x, last_y), 
             xytext=(last_x + 2, last_y), 
             fontsize=12,  # 字体大小
             color='red'
            #  textcoords='offset points',
            #  ha='left', 
            #  va='bottom'
             )

# 设置标题和坐标轴标签
plt.title('Plot with Last Data Point Highlighted and Labeled')
plt.xlabel('Index')
plt.ylabel('Value')

# 显示图形
plt.legend()
plt.savefig("test")

这段代码将最后一个数据点的值用放大的红色字体标注出来,并在图上用红圈圈出该点。

plt.annotate 是 Matplotlib 用于在图形上添加注释(文本)的函数。以下是 plt.annotate 函数的常用参数及其对应的含义:

plt.annotate(text, xy, xytext=None, xycoords='data',
             textcoords=None, arrowprops=None, **kwargs)

参数解释

  1. text:

    • 要显示的注释文本内容。
  2. xy:

    • 一个包含两个元素的元组或列表,用于指定注释指向的位置,格式为 (x, y)
    • 这个位置表示的是注释的目标点。
  3. xytext (可选):

    • 一个包含两个元素的元组或列表,用于指定注释文本的位置,格式为 (x, y)
    • 如果不指定,默认值为 xy
  4. xycoords (可选):

    • 指定 xy 所使用的坐标系,默认值是 'data',表示数据坐标。
    • 其他常见选项包括 'figure points'(图形窗口的点)、'figure pixels'(图形窗口的像素)、'axes points'(轴内的点)、'axes fraction'(轴内的分数)。
  5. textcoords (可选):

    • 指定 xytext 所使用的坐标系,默认值是 xycoords 的值。
    • 可选值与 xycoords 类似。
  6. arrowprops (可选):

    • 一个字典,用于定义箭头的样式。常见的键包括:
      • 'arrowstyle':箭头样式,例如 '->''-[' 等。
      • 'color':箭头颜色。
      • 'shrink':缩小箭头的比例。
      • 'linewidth':箭头的线宽。
  7. 其他 **kwargs 参数:

    • 这些是与注释文本相关的其他关键字参数,如 fontsize(字体大小)、color(字体颜色)、horizontalalignment(水平对齐)、verticalalignment(垂直对齐)等。

例子

plt.annotate('This is a point',
             xy=(10, 10),         # 注释指向的点
             xytext=(15, 15),     # 注释文本的位置
             textcoords='offset points', # 以偏移量作为坐标系
             arrowprops=dict(facecolor='black', arrowstyle='->'), # 添加箭头
             fontsize=12,         # 字体大小
             color='red')         # 字体颜色

在这个例子中,注释文本 This is a point 会显示在图形中的某个位置(由 xytext 指定),并且有一个箭头指向图形中的点 (10, 10)。字体大小设置为 12,颜色为红色。