[Tutor] Appending an extra column in a data file
Sayan Chatterjee
sayanchatterjee at gmail.com
Wed Apr 10 20:22:03 CEST 2013
Hi Andre,
Is it that? We can have different plots and hence animation from a single
data file.Very good!...if you have some time in your disposal, it will be
kind of you to illumine in this matter...may be some useful link will do.
I have written this small code from scratch,there's no 'get it to work'
business...:)
Here is the total code...not attaching as you might have problem opening
random files from internet....:)
#!usr/bin/python
import numpy as np
import matplotlib.pyplot as plt
import itertools as i
import pylab
K = 3.14
t = 0
# Allotment of particles
pp_init = np.linspace(0,1.99799799,999)
print pp_init
# Velocity array
while t < 1:
pp_za = pp_init + t*K*np.sin(K*pp_init)
# Periodic Boundary Condition
for i in range(0,999):
if pp_za[i] < 0:
pp_za[i] = 2 - abs(pp_za[i])
if pp_za[i] > 2:
pp_za[i] = pp_za[i] % 2
pv_za = +K*np.sin(K*pp_init)
fname = 'file_' + str(t) + '.dat'
# Generating dataset for Phase Space diagram
np.savetxt(fname, np.array([pp_za,pv_za,t]), '%f')
t = t + 0.01
# Plot using Matplotlib
i = 0
while i < 1:
fname = 'file_' + str(i) + '.dat'
f=open(fname,"r")
x,y = np.loadtxt(fname, unpack=True)
#plt.plot(x,y,linewidth=2.0)
plt.scatter(x,y)
plt.ylim(-8,8)
plt.xlim(0,2)
plt.ylabel('Velocity')
plt.xlabel('X')
pylab.savefig(fname + '.png')
plt.cla()
f.close()
i = i + 0.001
Regards,
Sayan
On 10 April 2013 23:36, Andre' Walker-Loud <walksloud at gmail.com> wrote:
> Hi Sayan,
>
> > Yup it's exactly what I want!
> >
> > I want many data files,not one...to make an animation out of it. For a
> data file t is constant.
>
> You should not need many data files to make an animation. If you write
> your loops correctly, you can take a single data file with all the data.
> If you are using code you did not write, and just want to get it to work,
> I understand that, but would encourage you also to figure out how to do it
> all with single data file. Less files makes a files system and user
> happier.
>
> > the solution you have just mentioned i.e np.array([t,pp_za,pv_za]) is
> giving the following error:
> >
> >
> > Traceback (most recent call last):
> > File "ZA_Phase_Plot.py", line 38, in <module>
> > np.savetxt(fname, np.array([pp_za,pv_za,t]).T, '%f')
> > File "/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 979,
> in savetxt
> > fh.write(asbytes(format % tuple(row) + newline))
> > TypeError: float argument required, not numpy.ndarray
> >
> > What to do? :-|
>
> There are pieces of the code snipet you sent which are not defined, so it
> is not clear why you are getting this error. How long is the file
> "ZA_Phase_Plot.py"? At least you can send from line 0 to where you did
> before, so all the variables are defined. That should help.
>
> Andre
>
>
>
>
--
--------------------------------------------------------------------------
*Sayan Chatterjee*
Dept. of Physics and Meteorology
IIT Kharagpur
Lal Bahadur Shastry Hall of Residence
Room AB 205
Mob: +91 9874513565
blog: www.blissprofound.blogspot.com
Volunteer , Padakshep
www.padakshep.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20130410/b04a3e69/attachment.html>
More information about the Tutor
mailing list