[Tutor] Appending an extra column in a data file
Oscar Benjamin
oscar.j.benjamin at gmail.com
Wed Apr 10 21:04:55 CEST 2013
On 10 April 2013 19:48, Sayan Chatterjee <sayanchatterjee at gmail.com> wrote:
> Hi Andre,
>
> I figured it out. Need not reply of np.savetxt for storing array simply
> f.wite() is doing fine.
>
> while i < 999:
> print i
> fo.write('{0:f} {1:f} {2:f}\n'.format(pp_za[i], pv_za[i],t))
> i = i + 1
>
> Eager to know that single file thing though!
The animation module in matplotlib can do animations for you without
you needing to explicitly write your data out to files. The code below
is taken from some matplotlib documentation or wiki. I don't remember
exactly where I got it from but I do remember that I needed to modify
it slightly to get it to work. If you run the script it will create
200 png image files and then call an external program (mencoder or
ffmpeg - need to install those separately) to convert the png files
into an mp4 video file.
#!/usr/bin/env python
"""
Matplotlib Animation Example
author: Jake Vanderplas
email: vanderplas at astro.washington.edu
website: http://jakevdp.github.com
license: BSD
Please feel free to use and modify this, but keep the above information. Thanks!
"""
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)
# save the animation as an mp4. This requires ffmpeg or mencoder to be
# installed. The extra_args ensure that the x264 codec is used, so that
# the video can be embedded in html5. You may need to adjust this for
# your system: for more information, see
# http://matplotlib.sourceforge.net/api/animation_api.html
anim.save('./basic_animation.mp4', fps=30)
Oscar
More information about the Tutor
mailing list