Thursday, September 22, 2011

Creating gif animation using gnuplot

Now the new version of gnuplot(gnuplot4.6) makes things much easier, you can refer to another of my posts for the new way.

Some times an animation makes thing much easier to be understood. When I was in middle school, I can not understand the propagation of wave well although the teacher took great effort to explain it to me. At last he show me an animation of propagating wave, at the instance i understand it. So can gnuplot create such a powerful thing? The answer is yes. Under gif terminal, if the animate option is selected, Gnuplot will thought each plot as a frame of an animation. Next is an example.
#We will plot sin(x+t) in this gif animation
reset
set term gif animate
set output "animate.gif"
n=24    #n frames
dt=2*pi/n
set xrange [0:4*pi]
i=0
load "animate.gnuplot"
set output
where file animate.gnuplot contain the following gnuplot commands:
plot sin(x+i*dt) w l lt 1 lw 1.5 title sprintf("t=%i",i)
i=i+1
if (i < n) reread
Note you can not use "plot for ..." to create an animation, because gnuplot will look it as a single plot and will only create a single frame. Run the script we get an animation as this.


9 comments:

  1. Hello,
    This is what I've been looking for while I googled it. Thanks !

    ReplyDelete
  2. Excellent!! But isn't "show output" at the end necessary? I was getting GIF errors without that.

    ReplyDelete
  3. That's really cool. Is there a way to animate a series of still images together using gnuplot though?

    ReplyDelete
  4. thanks can you also put some examples of animation surfaces

    ReplyDelete

Creative Commons License
Except as otherwise noted, the content of this page is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License.