Heim > Artikel > Backend-Entwicklung > Wie animiere ich Streudiagramme in Matplotlib, um zeitlich variierende Daten zu visualisieren?
Animieren von Streudiagrammen in Matplotlib
Streudiagramme sind ein nützliches Werkzeug zur Visualisierung der Beziehung zwischen zwei oder mehr Variablen. Wenn sich die Daten im Laufe der Zeit ändern, kann es hilfreich sein, das Streudiagramm zu animieren, um zu sehen, wie sich die Beziehung entwickelt.
Positionen, Größen und Farben aktualisieren
Zum Animieren Um ein Streudiagramm zu erstellen, müssen Sie die Positionen, Größen oder Farben der Punkte in jedem Frame der Animation aktualisieren. Dies kann mit den Methoden set_offsets, set_sizes bzw. set_array des Scatter-Objekts erfolgen.
<code class="python">scat = plt.scatter(x, y, c=c) # Update position scat.set_offsets(new_xy) # Update size scat.set_sizes(new_sizes) # Update color scat.set_array(new_colors)</code>
Verwenden von FuncAnimation
Die FuncAnimation-Klasse aus der Matplotlib. Das Animationsmodul kann verwendet werden, um das Streudiagramm bei jedem Frame der Animation automatisch zu aktualisieren. Das Argument init_func wird einmal aufgerufen, um den Plot zu initialisieren, während die Aktualisierungsfunktion bei jedem Frame aufgerufen wird.
<code class="python">import matplotlib.animation as animation def update(i): # Update data x, y, c = get_data(i) # Update plot scat.set_offsets(x, y) scat.set_array(c) return scat, ani = animation.FuncAnimation(fig, update, interval=5) plt.show()</code>
Beispiel
Das folgende Beispiel erstellt eine Animation von ein Streudiagramm, bei dem sich die Punkte zufällig bewegen und im Laufe der Zeit ihre Farbe ändern:
<code class="python">import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation # Create random data num_points = 50 xy = (np.random.rand(2, num_points) - 0.5) * 10 c = np.random.rand(num_points) # Setup figure and axes fig, ax = plt.subplots() scat = ax.scatter(xy[0], xy[1], c=c, s=30) # Define animation update function def update(i): # Update data xy += np.random.rand(2, num_points) * 0.02 c = np.random.rand(num_points) # Update plot scat.set_offsets(xy) scat.set_array(c) return scat, # Create animation ani = animation.FuncAnimation(fig, update, interval=10) plt.show()</code>
Diese Animation zeigt ein Streudiagramm mit 50 Punkten die sich zufällig bewegen und mit der Zeit ihre Farbe ändern.
Das obige ist der detaillierte Inhalt vonWie animiere ich Streudiagramme in Matplotlib, um zeitlich variierende Daten zu visualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!