Matplotlib中pyplot文本标注与箭头绘制详解

认真发呆
认真发呆
发布时间:2026-10-12| 4人浏览过
原创

本文介绍Matplotlib库中pyplot模块的文本标注与箭头功能。通过text()函数可指定文字位置、对齐方式及边框样式;利用annotate()函数可添加带样式的箭头并关联起点与终点坐标。文章提供了完整的代码示例,展示如何在双子图中对曲线进行标注和箭头指示,帮助读者掌握图表注释技巧。

在使用pyplot进行绘图时,往往需要在图表中添加文字说明。特别是当多条曲线靠得较近时,使用箭头明确标注文字与对应曲线的关系显得尤为重要。本节将详细介绍如何实现文本标注和箭头的添加。

添加文本标注主要调用pyplot.text函数,该函数既可以通过pyplot直接调用,也可以通过subplot对象调用。以下是该函数支持的部分可选参数说明。

text(tx,ty,fontsize=fs,verticalalignment=va,horizontalalignment=ha,...)

参数tx和ty用于指定文字放置的坐标位置;va和ha分别控制垂直和水平对齐方式,可选值包括top、bottom、center(垂直)以及left、right、center(水平)。此外,文字还可以设置边框,边框形状支持箭头样式,并可指定箭头的具体方向。

添加箭头标注则使用pyplot.annotate函数,其调用方式与text类似。以下是该函数支持的部分可选参数说明。

annotate(text,xy=(tx0,ty0),xytext=(tx1,ty1),arrowprops=dict(arrowstyle="->",connectionstyle="arc3"))

参数text表示与箭头关联的说明文字;xy指定箭头的终点坐标,xytext指定箭头的起点坐标;arrowprops用于指定箭头的样式细节。更多高级用法请参考官方手册。

最终生成的图表效果如下所示。

实现上述效果的代码如下,这是在原有subplot基础上的修改版本。

#!/usr/bin/env python

import numpy as np
import matplotlib.pyplot as plt

def f1(t):
 return np.exp(-t)*np.cos(2*np.pi*t)

def f2(t):
 return np.sin(2*np.pi*t)*np.cos(3*np.pi*t)

t = np.arange(0.0,5.0,0.02)

plt.figure(figsize=(8,7),dpi=98)
p1 = plt.subplot(211)
p2 = plt.subplot(212)

label_f1 = "$f(t)=e^{-t} \cos (2 \pi t)$"
label_f2 = "$g(t)=\sin (2 \pi t) \cos (3 \pi t)$"

p1.plot(t,f1(t),"g-",label=label_f1)
p2.plot(t,f2(t),"r-.",label=label_f2,linewidth=2)

p1.axis([0.0,5.01,-1.0,1.5])

p1.set_ylabel("v",fontsize=14)
p1.set_title("A simple example",fontsize=18)
p1.grid(True)
#p1.legend()

tx = 2
ty = 0.9
p1.text(tx,ty,label_f1,fontsize=15,verticalalignment="top",horizontalalignment="right")

p2.axis([0.0,5.01,-1.0,1.5])
p2.set_ylabel("v",fontsize=14)
p2.set_xlabel("t",fontsize=14)
#p2.legend()
tx = 2
ty = 0.9
p2.text(tx,ty,label_f2,fontsize=15,verticalalignment="bottom",horizontalalignment="left")

p2.annotate('',xy=(1.8,0.5),xytext=(tx,ty),arrowprops=dict(arrowstyle="->",connectionstyle="arc3"))

plt.show()

对于此类基础功能,保持代码简洁明了即可,无需过度复杂化。

总结

以上就是关于Matplotlib中pyplot文本标注与箭头使用的全部内容,希望能为读者提供帮助。感兴趣的朋友还可以继续查阅本站的相关文章:

《用matplotlib画等高线图详解》

《Python通过matplotlib绘制动画简单实例》

《matplotlib简介,安装和简单实例代码》

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。