在 Matplotlib 中同时显示光标

PythonPythonBeginner
立即练习

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

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

简介

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

虚拟机使用提示

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) matplotlib(("Matplotlib")) -.-> matplotlib/PlottingDataGroup(["Plotting Data"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") python/BasicConceptsGroup -.-> python/booleans("Booleans") matplotlib/PlottingDataGroup -.-> matplotlib/line_plots("Line Plots") python/DataStructuresGroup -.-> python/tuples("Tuples") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48837{{"在 Matplotlib 中同时显示光标"}} matplotlib/figures_axes -.-> lab-48837{{"在 Matplotlib 中同时显示光标"}} python/booleans -.-> lab-48837{{"在 Matplotlib 中同时显示光标"}} matplotlib/line_plots -.-> lab-48837{{"在 Matplotlib 中同时显示光标"}} python/tuples -.-> lab-48837{{"在 Matplotlib 中同时显示光标"}} python/importing_modules -.-> lab-48837{{"在 Matplotlib 中同时显示光标"}} python/numerical_computing -.-> lab-48837{{"在 Matplotlib 中同时显示光标"}} python/data_visualization -.-> lab-48837{{"在 Matplotlib 中同时显示光标"}} end

导入库

第一步是导入必要的库,即 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 函数以在所有三个图上显示光标。