Matplotlib Radiobutton Sinuswellenvisualisierung

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

Radiobuttons sind ein Eingabeelement, das es Benutzern ermöglicht, eine Option aus einer Gruppe vorgegebener Optionen auszuwählen. In diesem Lab verwenden wir die matplotlib-Bibliothek, um eine Visualisierung mit Radiobuttons zu erstellen, mit denen der Benutzer zwischen verschiedenen Sinuswellen wählen kann, die im Diagramm angezeigt werden sollen.

Tipps für die VM

Nachdem der VM-Start 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 von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie während des Lernens Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Importieren der erforderlichen Bibliotheken

Wir beginnen mit dem Importieren der erforderlichen Bibliotheken für dieses Lab - numpy und matplotlib.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.widgets import RadioButtons

Daten erstellen

Als nächstes werden wir die Daten erstellen, die im Diagramm verwendet werden sollen. Mit der numpy-Bibliothek werden wir drei unterschiedliche Sinuswellen mit unterschiedlichen Frequenzen erstellen.

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

Erstellen des Diagramms und der Radiobuttons

Jetzt werden wir das Diagramm und die Radiobuttons erstellen. Wir werden die subplots()-Funktion verwenden, um das Diagramm zu erstellen, und die RadioButtons()-Funktion, um die Radiobuttons zu erstellen.

fig, ax = plt.subplots()
l, = ax.plot(t, s0, lw=2, color='red')
fig.subplots_adjust(left=0.3)

axcolor = 'lightgoldenrodyellow'
rax = fig.add_axes([0.05, 0.7, 0.15, 0.15], facecolor=axcolor)
radio = RadioButtons(rax, ('1 Hz', '2 Hz', '4 Hz'),
                     label_props={'color': 'cmy', 'fontsize': [12, 14, 16]},
                     radio_props={'s': [16, 32, 64]})

Funktionalität zu den Radiobuttons hinzufügen

Wir werden nun der Radiobuttons mit der on_clicked()-Funktion Funktionalität hinzufügen. Wir werden zwei Funktionen definieren - hzfunc() und colorfunc() - die aufgerufen werden, wenn auf die Radiobuttons geklickt wird.

def hzfunc(label):
    hzdict = {'1 Hz': s0, '2 Hz': s1, '4 Hz': s2}
    ydata = hzdict[label]
    l.set_ydata(ydata)
    fig.canvas.draw()
radio.on_clicked(hzfunc)

rax = fig.add_axes([0.05, 0.4, 0.15, 0.15], facecolor=axcolor)
radio2 = RadioButtons(
    rax, ('red', 'blue', 'green'),
    label_props={'color': ['red', 'blue', 'green']},
    radio_props={
        'facecolor': ['red', 'blue', 'green'],
        'edgecolor': ['darkred', 'darkblue', 'darkgreen'],
    })


def colorfunc(label):
    l.set_color(label)
    fig.canvas.draw()
radio2.on_clicked(colorfunc)

rax = fig.add_axes([0.05, 0.1, 0.15, 0.15], facecolor=axcolor)
radio3 = RadioButtons(rax, ('-', '--', '-.', ':'))


def stylefunc(label):
    l.set_linestyle(label)
    fig.canvas.draw()
radio3.on_clicked(stylefunc)

Zeige das Diagramm an

Schließlich werden wir das Diagramm mit der show()-Funktion anzeigen.

plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man mit Hilfe der matplotlib-Bibliothek eine Visualisierung mit Radiobuttons erstellt. Wir haben Radiobuttons verwendet, um dem Benutzer die Möglichkeit zu geben, zwischen verschiedenen Sinuswellen auszuwählen, die im Diagramm angezeigt werden sollen. Wir haben auch der Radiobuttons Funktionalität hinzugefügt, indem wir Funktionen definiert haben, die aufgerufen wurden, wenn auf die Buttons geklickt wurde. Insgesamt hat dieses Lab gezeigt, wie Radiobuttons verwendet werden können, um interaktive Visualisierungen zu erstellen, die es Benutzern ermöglichen, verschiedene Aspekte der Daten zu erkunden.