pygrace
# Python bindings for grace, based on Nathan Gray's gracePlot
# Requires grace and Numpy
# Download pygrace source tarfile
# Installation

unzup and unpack the gzipped tar archive
$ tar -xvzf pygrace-0.4.tgz

install the package
$ python setup.py build
$ python setup.py install

# Documentation

import the grace class
>>> from pygrace import grace

instantiate the grace class
>>> pg = grace()

get help
>>> pg.doc()
Methods:
  prompt() --> start interactive session
  eval(command) --> execute a grace command
  put(name,val) --> put variable into interactive session
  get(name) --> get variable from interactive session
  who([name]) --> return the existing grace variables
  delete(name) --> destroy selected pylab variables
  restart() --> restart a grace window
Notes:
  grace and Numpy must be installed, grace also relies on (open)motif

Copyright (c) 2009 California Institute of Technology. All rights reserved.


If you use this software to do productive scientific research that leads to
publication, we ask that you acknowledge use of the software by citing the
following paper in your publication:

    "pygrace: python bindings to the Grace plotting package", Michael McKerns,
    unpublished; http://www.its.caltech.edu/~mmckerns/software.html


use grace methods directly from the python interpreter
>>> from Numpy import *
>>> x = []
>>> for i in range(21): x.append(i*pi/10)
... 
>>> pg.plot(x,sin(x))

push python variables into grace and interact with grace scripting language
>>> pg.put('x',x)
>>> pg.put('y',cos(x))
>>> pg.eval('s0 line color 2')
>>> pg.eval('plot(x,y)')

use the interactive grace prompt
>>> pg.prompt()
grace interface:
vars=
     y
     x
grace> histoPlot(y)
grace> s0 fill color 3
grace> redraw()
grace> exit

check variables in grace session
>>> pg.who().keys()
['y', 'x']
>>> pg.who('x')
[0.0, 0.31415926535897931, 0.62831853071795862, 0.94247779607693793,
 1.2566370614359172, 1.5707963267948966, 1.8849555921538759,
 2.1991148575128552, 2.5132741228718345, 2.8274333882308138,
 3.1415926535897931, 3.455751918948772, 3.7699111843077517,
 4.0840704496667311, 4.3982297150257104, 4.7123889803846897,
 5.026548245743669, 5.3407075111026483, 5.6548667764616276,
 5.9690260418206069, 6.2831853071795862]

get variables back into python from grace
>>> cosx = pg.get('y')

use shortcuts for put, eval, and get
>>> pg.z = 0.5
>>> pg('print z')
0.5
>>> pg.z + 1
1.5

delete variables from grace
>>> pg.delete('x')
>>> pg.delete('y')

# Versions

0.4: 03/02/09
 migrated Numeric dependency to Numpy
 added license text
 installs with setuptools, if available
 more gentle install & dependency failure
0.3: 05/23/06
 added examples directory
 shortcuts for put, get, & eval
0.2: 06/20/05
 put() & get() now handle sequence elements, slices, etc.
0.1: 06/17/05
 initial; python bindings for grace
 interactive grace prompt
 embed python into grace
 'plot' for 2-D line plots
 'histoPlot' for 2-D histograms