在 Matplotlib 中同时显示光标

Beginner

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

简介

本教程将展示如何使用 matplotlib.widgets.MultiCursor 函数在多个绘图上同时显示光标。

虚拟机使用提示

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

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

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

导入库

第一步是导入必要的库,即 matplotlib.pyplotnumpy

import matplotlib.pyplot as plt
import numpy as np

创建数据

接下来,我们将为绘图创建一些数据。在这个例子中,我们将创建三个频率不同的正弦波。

t = np.arange(0.0, 2.0, 0.01)
s1 = np.sin(2*np.pi*t)
s2 = np.sin(3*np.pi*t)
s3 = np.sin(4*np.pi*t)

创建绘图

现在,我们将使用 plt.subplots 函数创建三个子图。其中两个图将在一个图形中创建,而第三个图将在单独的图形中创建。

fig, (ax1, ax2) = plt.subplots(2, sharex=True)
ax1.plot(t, s1)
ax2.plot(t, s2)
fig, ax3 = plt.subplots()
ax3.plot(t, s3)

添加多光标

最后,我们将添加 MultiCursor 函数,以便在鼠标悬停在数据点上时在所有三个图上显示光标。

multi = MultiCursor(None, (ax1, ax2, ax3), color='r', lw=1)
plt.show()

总结

在本教程中,我们学习了如何使用 matplotlib.widgets.MultiCursor 函数在多个绘图上同时显示光标。我们创建了三个频率不同的正弦波,创建了三个子图,并添加了 MultiCursor 函数以在所有三个图上显示光标。