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.