Animation using GNUPlot
I've tried doing this using the animate function in matplotlib, python but i wasn't able to make it work - meaning i worked on it for a couple of days and then i gave up, not having found solutions for my problems on the internet.
And then i came across this site, where the gunn-peterson trough and the lyman alpha forest have been depicted - in a beautiful manner. And this got me interested in using js and d3 to do the animations and make it dynamic - using sliders etc.
In the meanwhile, i thought i'd look up and see if there was a way to create animations in gnuplot and whoopdedoo, what do i find but nirvana!
In the image, you see 5 static curves and one dynamic curve - the 5 static curves correspond to the SDSS filter pass bands i.e the u,g,r,i,z band passes. And the dynamic curve is the composite quasar spectrum - which as i mentioned - will change with respect to the red shift of the quasar.
As i said, i used gnuplot to create this gif and here's how to -
Create an animate.plt gnuplot script file.
where the gnuplot.animate file contains the following
# refer to http://gnuplot-surprising.blogspot.in/2011/09/creating-gif-animation-using-gnuplot.html in case any doubts pop up! reset set term gif animate set output "animate10.gif" # sets the terminal to give output in a gif format and save it as mentioned n=50 # number of iterations set xrange[500:10000] set yrange[0:25] # set xrange and y range - obviously i=0 # obviously plot "u.dat" u 1:($2*22) w l lc 000000 title "" replot "g.dat" u 1:($2*22) w l lc 000000 title "" replot "r.dat" u 1:($2*22) w l lc 000000 title "" replot "i.dat" u 1:($2*22) w l lc 000000 title "" replot "z.dat" u 1:($2*22) w l lc 000000 title "" # plot the filters in the first place. # lc 000000 is to draw the lines in black color. load "animate.gnuplot" # to load the data to be animated set output # to end animation sequence
and you can run this script in gnuplot as follows
replot "vandenberk_quasar_composite_spectrumtxt.txt" u ($1*(i*0.05+1)):($2) w l lc 000000 title "" i = i+1 if (i<n) reread
But i seriously suggest you run the commands one after the other dynamically on the gnuplot terminal - to check every step of the program.
gnuplot> load "animate.plt"
gnuplot> load "animate.plt" End of animation sequence
- If you don't see the End of animation sequence on the screen, then your animation is incomplete.
- If you see jibber-jabber on the screen after the command
gnuplot> load "animate.gnuplot"
then you haven't done
gnuplot> set output "output.gif"
Written with StackEdit.