Skip to content
Anleitungen
Matplotlib
Wie man mit Matplotlib ein interaktives Diagramm erstellt

Wie man mit Matplotlib ein interaktives Diagramm erstellt

Das Erstellen von standardmäßigen statischen Diagrammen mit Python und Matplotlib ist ein gut erforschtes Gebiet mit vielen Anleitungen und Ressourcen. Wenn es jedoch darum geht, interaktive Diagramme zu erstellen - Diagramme, die Sie zoomen, verschieben und in Echtzeit aktualisieren können - ist die Informationen etwas dünn gesät.

In diesem umfassenden Leitfaden werden wir den Prozess des Erstellens interaktiver Diagramme mit Matplotlib entmystifizieren. Wir werden Ihnen anhand von Schritt-für-Schritt-Beispielen zeigen, welche Fähigkeiten Sie benötigen, um Ihre eigenen interaktiven Visualisierungen zu erstellen.

Erste Schritte mit interaktiven Diagrammen in Matplotlib

Bevor wir beginnen, ist es wichtig zu verstehen, was ein interaktives Diagramm ist. Im Gegensatz zu einem statischen Diagramm können Benutzer mit einem interaktiven Diagramm in Echtzeit mit den Daten interagieren. Dies kann bedeuten, dass Sie in ein Diagramm hinein- und herauszoomen, das Diagramm auf Wechselwirkungen mit Widgets reagieren lassen oder sogar ein dynamisches Diagramm erstellen, das sich in Echtzeit basierend auf Eingabedaten aktualisiert.

Um Interaktivität in Matplotlib zu ermöglichen, müssen wir bestimmte Backends verwenden, die den interaktiven Modus unterstützen. Matplotlibs Standardmodus ist nicht interaktiv, und alle Diagramme sind statisch. Um ein Diagramm interaktiv zu machen, müssen wir auf ein anderes Backend wie 'notebook' oder 'widget' umschalten.

In Jupyter Notebooks können Sie den Befehl %matplotlib notebook verwenden, um auf das Notebook-Backend umzuschalten und Ihre Diagramme interaktiv zu machen. Dies ist ein wichtiger erster Schritt für die Erstellung interaktiver Diagramme.

Erstellen Sie Ihr erstes interaktives Diagramm

Nun, da wir die Grundlagen geschaffen haben, wollen wir unser erstes interaktives Diagramm erstellen. Wir beginnen mit einem einfachen Beispiel: einem Streudiagramm.

%matplotlib notebook
import matplotlib.pyplot as plt
import numpy as np
 
# Erstellen Sie ein einfaches Streudiagramm
fig, ax = plt.subplots()
x, y = np.random.rand(2, 200)
scatter = ax.scatter(x, y)
 
plt.show()

Wenn Sie den obigen Code in einem Jupyter Notebook ausführen, sehen Sie, dass Ihr Diagramm interaktiv ist. Sie können mit der Werkzeugleiste am unteren Rand des Diagramms hinein- und herauszoomen.

Erstellen von interaktiven Diagrammen mit Widgets

Die eigentliche Kraft interaktiver Diagramme entfaltet sich, wenn Sie sie mit Widgets kombinieren. Widgets ermöglichen es Benutzern, mit dem Diagramm zu interagieren und verschiedene Aspekte der Daten und Visualisierung zu steuern.

Werfen wir einen Blick auf ein Beispiel, bei dem wir ein Sinuswellendiagramm erstellen und einen Schieberegler verwenden, um die Frequenz der Welle zu steuern.

from ipywidgets import interact
import ipywidgets as widgets
 
def plot_func(freq):
    plt.figure()
    x = np.linspace(0, 2*np.pi, 400)
    y = np.sin(x * freq)
    plt.plot(x, y)
    plt.show()
 
interact(plot_func, freq=widgets.FloatSlider(value=7.5, min=1, max=10, step=0.5));

Im obigen Codeausschnitt definieren wir zunächst eine Funktion plot_func, die eine Sinuswelle für eine bestimmte Frequenz erzeugt. Wir verwenden dann die Funktion interact aus ipywidgets, um einen Schieberegler zu erstellen, der die Frequenz steuert. Wenn Sie diesen Code ausführen, sehen Sie einen Schieberegler über Ihrem Diagramm. Wenn Sie den Schieberegler bewegen, ändert sich die Frequenz der Sinuswelle in Echtzeit.

Diese Beispiele bieten eine Einführung in die Erstellung interaktiver Diagramme mit Matplotlib. In den folgenden Abschnitten werden wir komplexere Beispiele erkunden und tiefer in die Funktionalitäten interaktiver Diagramme eintauchen.

Setzen wir dort fort, wo wir aufgehört haben, und tauchen wir weiter in die faszinierende Welt der interaktiven Fähigkeiten von Matplotlib ein.

Verbessern der Interaktivität mit Widgets

Widgets sind nicht auf Schieberegler beschränkt; Sie können Kontrollkästchen, Dropdown-Menüs, Texteingaben und viele andere verwenden. Jeder Widget-Typ kann mit verschiedenen Arten von Datenmanipulation verknüpft werden. Zum Beispiel kann ein Dropdown-Menü verwendet werden, um auszuwählen, welcher Datensatz im Diagramm angezeigt wird. Widgets ermöglichen es Ihnen, wirklich interaktive und vielseitige Visualisierungen zu erstellen.

Diagramme dynamisch aktualisieren

Um Diagramme basierend auf Benutzerinteraktionen dynamisch zu aktualisieren, müssen Sie das Konzept von Ereignissen in Matplotlib verstehen. Ereignisse sind Eingaben von Benutzern, wie Mausklicks, Tastendrücke oder sogar das Bewegen der Maus über das Diagramm. Indem Sie diese Ereignisse erfassen und verarbeiten, können Sie Ihre Diagramme in Reaktion auf Benutzereingaben aktualisieren.

Hier ist ein Beispiel, das veranschaulicht, wie Sie eine Schaltfläche verwenden können, um neue Datenpunkte zu einem Streudiagramm hinzufügen:

from matplotlib.widgets import Button
 
fig, ax = plt.subplots()
scatter = ax.scatter(np.random.rand(10), np.random.rand(10))
 
button_ax = plt.axes([0.7, 0.05, 0.1, 0.075])
button = Button(button_ax, 'Hinzufügen')
 
def add_point(event):
    new_point = np.random.rand(2)
    scatter.set_offsets(np.concatenate([scatter.get_offsets(), [new_point]]))
    plt.draw()
 
button.on_clicked(add_point)
 
plt.show()

In diesem Code erstellen wir ein Streudiagramm und eine Schaltfläche. Wenn die Schaltfläche geklickt wird, löst sie die Funktion add_point aus, die einen neuen zufälligen Datenpunkt zum Streudiagramm hinzufügt.

Interaktive 3D-Diagramme

Matplotlib unterstützt auch die Erstellung interaktiver 3D-Diagramme. Dies ermöglicht es Ihnen, das Diagramm zu drehen und hinein- oder herauszuzoomen, um die Daten aus verschiedenen Blickwinkeln zu untersuchen. Hier ist ein Beispiel für ein 3D-Streudiagramm:

from mpl_toolkits.mplot3d import Axes3D
 
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
 
x, y, z = np.random.rand(3, 100)
ax.scatter(x, y, z)
 
plt.show()

In diesem Diagramm können Sie die Maus verwenden, um das Diagramm im 3D-Raum zu ziehen und zu drehen, und das Mausrad verwenden, um hinein- und herauszuzoomen.

Mit diesen Techniken können Sie eine Vielzahl von interaktiven Diagrammen in Matplotlib erstellen. Interaktive Diagramme sind ein leistungsstolzes Werkzeug für Datenanalyse und Visualisierung, da sie es Ihnen ermöglichen, Ihre Daten gründlicher und intuitiver zu erkunden.

Alternative zu Matplotlib: Daten mit PyGWalker visualisieren

Anstatt Matplotlib zur Visualisierung Ihres Pandas-Datenrahmens zu verwenden, gibt es hier eine Alternative, eine Open-Source-Python-Bibliothek, die Ihnen helfen kann, Datenvisualisierungen mühelos zu erstellen: PyGWalker (opens in a new tab).

PyGWalker zur Datenvisualisierung (opens in a new tab)

Sie müssen keine komplizierte Verarbeitung mehr mit Python-Codierung durchführen. Importieren Sie einfach Ihre Daten und ziehen Sie Variablen per Drag & Drop, um verschiedene Arten von Datenvisualisierungen zu erstellen! Hier finden Sie ein Schnellstart-Demo-Video zur Bedienung:


So verwenden Sie PyGWalker in Ihrem Jupyter-Notebook:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Alternativ können Sie es auch in Kaggle Notebook/Google Colab ausprobieren:

PyGWalker in Kaggle Notebook ausführen (opens in a new tab)PyGWalker in Google Colab ausführen (opens in a new tab)PyGWalker auf GitHub ⭐️ geben (opens in a new tab)
PyGWalker in Kaggle Notebook ausführen (opens in a new tab)PyGWalker in Google Colab ausführen (opens in a new tab)PyGWalker in Google Colab ausführen (opens in a new tab) 

PyGWalker basiert auf der Unterstützung unserer Open-Source-Community. Vergessen Sie nicht, PyGWalker auf GitHub (opens in a new tab) zu besuchen und uns ein Star zu geben!

FAQ

  1. Was ist ein interaktives Diagramm?
    Ein interaktives Diagramm ist ein Graph, mit dem Benutzer interagieren können. Benutzer können hinein- und herauszoomen, den Graphen verschieben und ihn sogar in Echtzeit aktualisieren, abhängig von den implementierten Funktionen.

  2. Wie kann ich meine Matplotlib-Diagramme interaktiv machen?
    Sie können Ihre Matplotlib-Diagramme interaktiv machen, indem Sie eine interaktive Backend wie 'notebook' oder 'widget' verwenden. In einem Jupyter-Notebook können Sie den %matplotlib notebook-Magie-Befehl verwenden, um den interaktiven Modus zu aktivieren.

  3. Kann ich Widgets verwenden, um mit meinem Matplotlib-Diagramm zu interagieren?
    Ja, Sie können ipywidgets in Verbindung mit Matplotlib verwenden, um eine Reihe von interaktiven Funktionen zu erstellen. Diese können Schieberegler, Schaltflächen, Kontrollkästchen und mehr umfassen, mit denen Sie die Daten oder das Erscheinungsbild Ihres Diagramms in Echtzeit ändern können.