Animiertes Histogramm mit Matplotlib

Beginner

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

Einführung

In diesem Lab lernst du, wie du mithilfe von Matplotlib in Python ein animiertes Histogramm erstellen kannst. Das animierte Histogramm simuliert das Hinzukommen neuer Daten und aktualisiert die Höhen der Rechtecke mit den neuen Daten.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicke in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal musst du 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 du während des Lernens Probleme stellst, kannst du Labby gerne fragen. Gib nach der Sitzung Feedback, und wir werden das Problem für dich prompt beheben.

Bibliotheken importieren

Zunächst müssen wir die erforderlichen Bibliotheken importieren.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation

Zufallsgenerator initialisieren und Bin-Grenzen festlegen

Initialisiere den Zufallsgenerator für die Reproduzierbarkeit und definiere die Bin-Grenzen.

## Fixing random state for reproducibility
np.random.seed(19680801)

## Fixing bin edges
HIST_BINS = np.linspace(-4, 4, 100)

Daten und Histogramm erstellen

Erstelle Daten und Histogramm mit NumPy.

## histogram our data with numpy
data = np.random.randn(1000)
n, _, _ = plt.hist(data, HIST_BINS, lw=1, ec="yellow", fc="green", alpha=0.5)

Animation-Funktion erstellen

Wir müssen eine animate-Funktion erstellen, die neue Zufallsdaten generiert und die Höhen der Rechtecke aktualisiert.

def animate(frame_number):
    ## simulate new data coming in
    data = np.random.randn(1000)
    n, _ = np.histogram(data, HIST_BINS)
    for count, rect in zip(n, bar_container.patches):
        rect.set_height(count)
    return bar_container.patches

Balkencontainer und Animation erstellen

Mit plt.hist können wir eine Instanz von BarContainer erhalten, das eine Sammlung von Rectangle-Instanzen ist. Wir verwenden FuncAnimation, um die Animation einzurichten.

## Using plt.hist allows us to get an instance of BarContainer, which is a
## collection of Rectangle instances. Calling prepare_animation will define
## animate function working with supplied BarContainer, all this is used to setup FuncAnimation.
fig, ax = plt.subplots()
_, _, bar_container = ax.hist(data, HIST_BINS, lw=1, ec="yellow", fc="green", alpha=0.5)
ax.set_ylim(top=55)  ## set safe limit to ensure that all data is visible.

ani = animation.FuncAnimation(fig, animate, 50, repeat=False, blit=True)
plt.show()

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie mithilfe von Matplotlib in Python ein animiertes Histogramm erstellen. Sie haben begonnen, indem Sie die erforderlichen Bibliotheken importiert, den Zufallsgenerator initialisiert und die Bin-Grenzen festgelegt, Daten und Histogramm erstellt, eine Animationsfunktion erstellt und schließlich den Balkencontainer und die Animation erstellt haben. Indem Sie diese Schritte befolgen, können Sie animierte Histogramme erstellen, um Daten auf dynamische Weise zu visualisieren.