Home >Backend Development >Python Tutorial >How to Create Animated Scatter Plots with Changing Colors, Sizes, and Positions?
Problem: Create an animated scatter plot where the colors, sizes, and positions of points change dynamically based on a given data matrix.
Data Format:
Objective: Animate a scatter plot with the following features:
Solution:
Here's a code template that demonstrates how to create an animated scatter plot with changing colors, sizes, and positions:
<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>
This code snippet provides an example of how to animate a scatter plot with changing colors, sizes, and positions. You can customize the data generation and animation parameters to suit your specific requirements.
The above is the detailed content of How to Create Animated Scatter Plots with Changing Colors, Sizes, and Positions?. For more information, please follow other related articles on the PHP Chinese website!