From: Rahul D. <rd...@mo...> - 2008-02-15 01:50:15
|
I'm trying to do something like following... I've two data files: file1 and file2 with 2 columns each file1 file2 d1 t1 x1 y1 d2 t2 x2 y2 d3 t3 x3 y3 I want to plot following type information in addition to plotting file1 and file2 on same plot f(d1,x1) f(t1,y1) f(d2,x2) f(t2,y) f(d3,x3) f(t3,y3) where f is not complicated... I know how to plot data from a file, so I can easily create a third file of the data I want and get done with it, but is it possible to do this without creating third file... Any help is appreciated, -Rahul. |
From: William H. <w.h...@as...> - 2008-02-15 04:32:39
|
Hi Rahul On Thu, Feb 14, 2008 at 7:50 PM, Rahul Dabane <rd...@mo...> wrote: > I'm trying to do something like following... > I've two data files: file1 and file2 with 2 columns each > file1 file2 > d1 t1 x1 y1 > d2 t2 x2 y2 > d3 t3 x3 y3 > > I want to plot following type information in addition to plotting file1 > and file2 on same plot > f(d1,x1) f(t1,y1) > f(d2,x2) f(t2,y) > f(d3,x3) f(t3,y3) > > where f is not complicated... > There might be a simpler way to do it, but this seems to work: --------------------- pyx-2file.py --------------------------- import pyx # Get dict of columns from first data file columns = pyx.graph.data.file('f1.dat').columns # Merge in columns from second data file columns.update(pyx.graph.data.file('f2.dat').columns) # Make a PyX data source from the combined dict dd = pyx.graph.data.values(**columns) g = pyx.graph.graphxy(width=10, x=pyx.graph.axis.lin(), y=pyx.graph.axis.lin(), ) g.plot([ # Columns from first file pyx.graph.data.data(dd, x='d', y='t'), # Columns from second file pyx.graph.data.data(dd, x='x', y='y'), # Some function of columns from both files pyx.graph.data.data(dd, x='d+x', y='t+y'), ]) g.writePDFfile("pyx-2file") -------------------------------------------------------------- ------------------------ f1.dat ------------------------------ # d t 1 10 2 20 3 30 -------------------------------------------------------------- ------------------------ f2.dat ------------------------------ # x y 7 17 8 28 9 39 -------------------------------------------------------------- HTH Cheers Will -- Dr William Henney, Centro de Radioastronomía y Astrofísica, Universidad Nacional Autónoma de México, Campus Morelia |
From: Rahul D. <rd...@mo...> - 2008-02-15 18:54:10
|
Hi Will, Thanks a lot for your help.. I do have question about your code though..Being a newbie, I don't know where to find documentation about functions like columns.update( ) ... Do you have any pointer where I can find this type of documentation or examples where this code is used .... Thanks again for your help.. -Rahul. William Henney wrote: > Hi Rahul > > On Thu, Feb 14, 2008 at 7:50 PM, Rahul Dabane <rd...@mo...> wrote: > >> I'm trying to do something like following... >> I've two data files: file1 and file2 with 2 columns each >> file1 file2 >> d1 t1 x1 y1 >> d2 t2 x2 y2 >> d3 t3 x3 y3 >> >> I want to plot following type information in addition to plotting file1 >> and file2 on same plot >> f(d1,x1) f(t1,y1) >> f(d2,x2) f(t2,y) >> f(d3,x3) f(t3,y3) >> >> where f is not complicated... >> >> > > There might be a simpler way to do it, but this seems to work: > > --------------------- pyx-2file.py --------------------------- > import pyx > # Get dict of columns from first data file > columns = pyx.graph.data.file('f1.dat').columns > # Merge in columns from second data file > columns.update(pyx.graph.data.file('f2.dat').columns) > # Make a PyX data source from the combined dict > dd = pyx.graph.data.values(**columns) > g = pyx.graph.graphxy(width=10, > x=pyx.graph.axis.lin(), > y=pyx.graph.axis.lin(), > ) > g.plot([ > # Columns from first file > pyx.graph.data.data(dd, x='d', y='t'), > # Columns from second file > pyx.graph.data.data(dd, x='x', y='y'), > # Some function of columns from both files > pyx.graph.data.data(dd, x='d+x', y='t+y'), > ]) > g.writePDFfile("pyx-2file") > -------------------------------------------------------------- > > ------------------------ f1.dat ------------------------------ > # d t > 1 10 > 2 20 > 3 30 > -------------------------------------------------------------- > > ------------------------ f2.dat ------------------------------ > # x y > 7 17 > 8 28 > 9 39 > -------------------------------------------------------------- > > HTH > > Cheers > > Will > > > |
From: Alan G I. <ai...@am...> - 2008-02-15 19:13:23
|
On Fri, 15 Feb 2008, Rahul Dabane apparently wrote: > Being a newbie, I don't know where to find documentation > about functions like columns.update( ) Just keep track of the data type. E.g., http://docs.python.org/lib/typesmapping.html hth, Alan Isaac |
From: William H. <w.h...@as...> - 2008-02-15 19:14:59
|
Hi Rahul On Fri, Feb 15, 2008 at 12:54 PM, Rahul Dabane <rd...@mo...> wrote: > I do have question about your code though..Being a newbie, I don't know > where > to find documentation about functions like columns.update( ) ... The columns variable is a standard python dictionary and the update() method is described in the Python Library Reference http://www.python.org/doc/current/lib/typesmapping.html Funnily enough, although I knew that it should be possible, I didn't know how to do this when I saw your post. I just typed "python merge dictionary" into google and quickly found the answer. So, thanks for making me learn something new! Cheers Will -- Dr William Henney, Centro de Radioastronomía y Astrofísica, Universidad Nacional Autónoma de México, Campus Morelia |