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)
参数解释
-
text
:- 要显示的注释文本内容。
-
xy
:- 一个包含两个元素的元组或列表,用于指定注释指向的位置,格式为
(x, y)
。 - 这个位置表示的是注释的目标点。
- 一个包含两个元素的元组或列表,用于指定注释指向的位置,格式为
-
xytext
(可选):- 一个包含两个元素的元组或列表,用于指定注释文本的位置,格式为
(x, y)
。 - 如果不指定,默认值为
xy
。
- 一个包含两个元素的元组或列表,用于指定注释文本的位置,格式为
-
xycoords
(可选):- 指定
xy
所使用的坐标系,默认值是'data'
,表示数据坐标。 - 其他常见选项包括
'figure points'
(图形窗口的点)、'figure pixels'
(图形窗口的像素)、'axes points'
(轴内的点)、'axes fraction'
(轴内的分数)。
- 指定
-
textcoords
(可选):- 指定
xytext
所使用的坐标系,默认值是xycoords
的值。 - 可选值与
xycoords
类似。
- 指定
-
arrowprops
(可选):- 一个字典,用于定义箭头的样式。常见的键包括:
'arrowstyle'
:箭头样式,例如'->'
、'-['
等。'color'
:箭头颜色。'shrink'
:缩小箭头的比例。'linewidth'
:箭头的线宽。
- 一个字典,用于定义箭头的样式。常见的键包括:
-
其他
**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,颜色为红色。