Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python animation graph [closed]

I have a project to create few graph animations. I will have a directed weighted graph and on each step, I will change few things on this. I want to make those changes with animation. So, my question is this:

Is it possible to use python to make animations, and , if so, how would you make a simple animation?

like image 901
Tasos Avatar asked Apr 21 '13 15:04

Tasos


1 Answers

Matplotlib is the standard graphing library for python, and it comes with a pretty decent animation package. Jake Vanderplas has an excellent tutorial on using this here.

Taken from this link, if you want to animate a sine wave, you'd use the following method:

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation

# First set up the figure, the axis, and the plot element we want to animate
fig = plt.figure()
ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))
line, = ax.plot([], [], lw=2)

# initialization function: plot the background of each frame
def init():
    line.set_data([], [])
    return line,

# animation function.  This is called sequentially
def animate(i):
    x = np.linspace(0, 2, 1000)
    y = np.sin(2 * np.pi * (x - 0.01 * i))
    line.set_data(x, y)
    return line,

# call the animator.  blit=True means only re-draw the parts that have changed.
anim = animation.FuncAnimation(fig, animate, init_func=init,
           frames=200, interval=20, blit=True)

plt.show()

The animation library calls the function "animate" once every interval (specified as 20 in this example). The function should update the plots appropriately. In this case, it updates "line", which is the array of sine wave data using the set_data method.

like image 167
jiminy_crist Avatar answered Nov 05 '22 21:11

jiminy_crist