Heim > Backend-Entwicklung > Python-Tutorial > Wie erstelle ich animierte Streudiagramme mit wechselnden Farben, Größen und Positionen?

Wie erstelle ich animierte Streudiagramme mit wechselnden Farben, Größen und Positionen?

Linda Hamilton
Freigeben: 2024-11-05 22:21:02
Original
368 Leute haben es durchsucht

How to Create Animated Scatter Plots with Changing Colors, Sizes, and Positions?

Streudiagramme animieren: Farben, Größen und Positionen ändern

Problem: Erstellen Sie ein animiertes Streudiagramm, in dem die Farben, Größen und Positionen berücksichtigt werden Anzahl der Punkte ändert sich dynamisch basierend auf einer bestimmten Datenmatrix.

Datenformat:

  • Daten: Numpy ndarray mit Form (ntime, npoint)
  • x: Numpy ndarray mit Form (npoint), das x-Koordinaten darstellt
  • y: Numpy ndarray mit Form (npoint), das y-Koordinaten darstellt

Ziel: Animieren Sie ein Streudiagramm mit den folgenden Funktionen:

  • Ändern Sie die Positionen von Punkten, indem Sie scat.set_offsets(array) aktualisieren, wobei array ein 2D-Array aus x- und y-Koordinaten ist.
  • Ändern Sie die Größe von Punkten, indem Sie scat.set_sizes(array) aktualisieren, wobei array ein 1D-Array von Größen ist.
  • Ändern Sie die Farben von Punkten, indem Sie scat.set_array(array) aktualisieren, wobei array ein 1D-Array ist der Werte, die farblich zugeordnet werden sollen.

Lösung:

Hier ist eine Codevorlage, die zeigt, wie ein animiertes Streudiagramm mit wechselnden Farben, Größen und Positionen erstellt wird :

<code class="python">import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation

# Generate random data
numpoints = 50
x, y, s, c = next(data_stream()).T

# Create a figure and axes
fig, ax = plt.subplots()

# Create a scatter plot and set its initial data
scat = ax.scatter(x, y, c=c, s=s, vmin=0, vmax=1, cmap="jet", edgecolor="k")

# Initialize FuncAnimation
ani = animation.FuncAnimation(fig, update, interval=5, init_func=setup_plot, 
                                          blit=True)

# Setup plot
def setup_plot():
    ax.axis([-10, 10, -10, 10])
    return scat,

# Data stream generator
def data_stream():
    xy = (np.random.random((numpoints, 2))-0.5)*10
    s, c = np.random.random((numpoints, 2)).T
    while True:
        xy += 0.03 * (np.random.random((numpoints, 2)) - 0.5)
        s += 0.05 * (np.random.random(numpoints) - 0.5)
        c += 0.02 * (np.random.random(numpoints) - 0.5)
        yield np.c_[xy[:,0], xy[:,1], s, c]

# Update plot
def update(i):
    data = next(data_stream())
    scat.set_offsets(data[:, :2])
    scat.set_sizes(300 * abs(data[:, 2])**1.5 + 100)
    scat.set_array(data[:, 3])
    return scat,</code>
Nach dem Login kopieren

Dieses Code-Snippet bietet ein Beispiel dafür, wie ein Streudiagramm mit wechselnden Farben, Größen und Positionen animiert wird. Sie können die Datengenerierungs- und Animationsparameter an Ihre spezifischen Anforderungen anpassen.

Das obige ist der detaillierte Inhalt vonWie erstelle ich animierte Streudiagramme mit wechselnden Farben, Größen und Positionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage