Simultanes Anzeigen eines Cursors in Matplotlib

PythonPythonBeginner
Jetzt üben

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

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Tutorial wird gezeigt, wie die Funktion matplotlib.widgets.MultiCursor verwendet werden kann, um gleichzeitig einen Cursor auf mehreren Diagrammen anzuzeigen.

Tipps für virtuelle Maschinen

Nachdem der virtuelle Maschinenstart abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Bibliotheken importieren

Der erste Schritt besteht darin, die erforderlichen Bibliotheken zu importieren, nämlich matplotlib.pyplot und numpy.

import matplotlib.pyplot as plt
import numpy as np

Daten erstellen

Als nächstes werden wir einige Daten für unsere Diagramme erstellen. In diesem Beispiel werden wir drei Sinuswellen mit unterschiedlichen Frequenzen erstellen.

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)

Diagramme erstellen

Jetzt werden wir drei Teilbilder mit der Funktion plt.subplots erstellen. Zwei Diagramme werden in einer Figur erstellt, während das dritte Diagramm in einer separaten Figur erstellt wird.

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

Hinzufügen des MultiCursors

Schließlich werden wir die MultiCursor-Funktion hinzufügen, um einen Cursor auf allen drei Diagrammen anzuzeigen, wenn über einem Datenpunkt gehovered wird.

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

需要注意的是,这里的MultiCursor前面应该先定义过,不然代码会报错,因为MultiCursormatplotlib.widgets模块下的函数,使用前需要导入该模块,完整代码示例如下:

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.widgets import MultiCursor

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)

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

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

以上是完整的翻译及代码说明,确保在运行代码前正确导入所需模块。

Zusammenfassung

In diesem Tutorial haben wir gelernt, wie die Funktion matplotlib.widgets.MultiCursor verwendet wird, um einen Cursor gleichzeitig auf mehreren Diagrammen anzuzeigen. Wir haben drei Sinuswellen mit unterschiedlichen Frequenzen erstellt, drei Teilbilder erstellt und die MultiCursor-Funktion hinzugefügt, um einen Cursor auf allen drei Diagrammen anzuzeigen.