简介
在本实验中,我们将学习如何使用 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对象并显示了该图。