使用 Matplotlib 创建数据游标

Beginner

This tutorial is from open-source community. Access the source code

简介

在本实验中,我们将学习如何使用 Matplotlib(一种用于 Python 编程语言的绘图库)创建一个包含文本框的数据游标,该文本框会显示靠近鼠标指针的绘图点。

虚拟机提示

虚拟机启动完成后,点击左上角切换到“笔记本”标签,以访问 Jupyter Notebook 进行练习。

有时,你可能需要等待几秒钟让 Jupyter Notebook 完成加载。由于 Jupyter Notebook 的限制,操作验证无法自动化。

如果你在学习过程中遇到问题,请随时向 Labby 提问。课程结束后提供反馈,我们会立即为你解决问题。

导入必要的库

我们首先导入 Matplotlib 和 NumPy 库。NumPy 是 Python 中科学计算的基础包,而 Matplotlib 是一个能生成具有出版质量图形的绘图库。

import matplotlib.pyplot as plt
import numpy as np

创建一个绘图

我们使用 NumPy 的linspace函数创建一个简单的抛物线图,为 x 生成 -5 到 5 之间的 1000 个值,然后将 y 计算为 x 的平方。

fig, ax = plt.subplots(figsize=(8, 6))
ax.set_title("Cursor Tracking x Position")

x = np.linspace(-5, 5, 1000)
y = x**2

line, = ax.plot(x, y)
ax.set_xlim(-5, 5)
ax.set_ylim(0, 25)

创建带注释的游标类

我们创建一个新类AnnotatedCursor,它继承自matplotlib.widgets.Cursor,并展示了新窗口小部件的创建及其事件回调。AnnotatedCursor类用于创建一个带有显示当前坐标文本的十字准线游标。

class AnnotatedCursor(Cursor):
    """
    A crosshair cursor like `~matplotlib.widgets.Cursor` with a text showing \
    the current coordinates.
   ...
    """

初始化带注释的游标对象

我们通过将绘图线line传递给AnnotatedCursor构造函数来初始化AnnotatedCursor对象。

cursor = AnnotatedCursor(line=line, ax=ax, useblit=True)

显示绘图

我们使用 Matplotlib pyplot 模块的 show() 方法来显示绘图。

plt.show()

总结

在本实验中,我们学习了如何使用 Matplotlib 创建一个数据游标,包括一个文本框,该文本框会显示靠近鼠标指针的绘图点。我们创建了一个简单的抛物线图,然后创建了一个AnnotatedCursor对象并显示了该图。