使用 Matplotlib 创建数据游标

PythonPythonBeginner
立即练习

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

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

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