Comment animer des nuages ​​de points dans Matplotlib pour visualiser des données variables dans le temps ?

Mary-Kate Olsen
Libérer: 2024-11-07 00:21:02
original
737 Les gens l'ont consulté

How to Animate Scatter Plots in Matplotlib to Visualize Time-Varying Data?

Animation de nuages ​​de points dans Matplotlib

Les nuages ​​de points sont un outil utile pour visualiser la relation entre deux ou plusieurs variables. Lorsque les données changent au fil du temps, il peut être utile d'animer le nuage de points pour voir comment la relation évolue.

Mise à jour des positions, des tailles et des couleurs

Pour animer un nuage de points, vous devrez mettre à jour les positions, les tailles ou les couleurs des points à chaque image de l'animation. Cela peut être fait en utilisant respectivement les méthodes set_offsets, set_sizes et set_array de l'objet Scatter.

<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>
Copier après la connexion

Utilisation de FuncAnimation

La classe FuncAnimation de matplotlib. Le module d'animation peut être utilisé pour mettre à jour automatiquement le nuage de points à chaque image de l'animation. L'argument init_func est appelé une fois pour initialiser le tracé, tandis que la fonction de mise à jour est appelée à chaque image.

<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>
Copier après la connexion

Exemple

L'exemple suivant crée une animation de un nuage de points où les points se déplacent de manière aléatoire et changent de couleur au fil du temps :

<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>
Copier après la connexion

Cette animation montrera un nuage de points de 50 points qui se déplacent de manière aléatoire et changent de couleur au fil du temps.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!