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
Linda HamiltonOriginal
2024-11-05 22:21:02361Durchsuche

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>

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!

Stellungnahme:
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