  S-Lang Grace Module Reference
  John E. Davis, jed@jedsoft.org
  Aug 26, 2007
  ____________________________________________________________

  Table of Contents


  1. Overview
  2. Tutorial
  3. Grace Module Function Reference
     3.1 grace_new
     3.2 grace.plot
     3.3 grace.focus
     3.4 grace.oplot
     3.5 grace.tick
     3.6 grace.label
     3.7 grace.save
     3.8 grace.new_color
     3.9 grace.get_colors
     3.10 grace.multi
     3.11 grace.viewport
     3.12 grace.pagesize
     3.13 grace.hplot
     3.14 grace.ohplot
     3.15 grace.xrange
     3.16 grace.yrange
     3.17 grace.world
     3.18 grace.ylabel
     3.19 grace.xlabel
     3.20 grace.title
     3.21 grace.subtitle
     3.22 grace.redraw
     3.23 grace.clear
     3.24 grace.close
     3.25 grace.kill
     3.26 grace.logx
     3.27 grace.logy
     3.28 grace.linx
     3.29 grace.liny
     3.30 grace.legend
     3.31 grace.xtick
     3.32 grace.ytick
     3.33 grace.new_color


  ______________________________________________________________________

  [1m1.  Overview[0m


  Grace <http://plasma-gate.weizmann.ac.il/Grace/> (formerly Xmgr) is a
  popular plotting program for Unix that features a GUI for WYSIWYG
  generation of publication quality 2-D graphs.  The grace-module
  provides a high-level interface between the S-lang
  <http://www.jedsoft.org/slang/> interpreter and the Grace
  <http://plasma-gate.weizmann.ac.il/Grace/> plotting application,
  permitting the creation of multiple Grace <http://plasma-
  gate.weizmann.ac.il/Grace/> instances and allowing an arbitrary number
  of Grace <http://plasma-gate.weizmann.ac.il/Grace/> windows to be
  open.

  The module was developed and tested with Grace-5.1.20, using Debian
  ``Etch'' as the underlying OS.  As the module makes extensive use of
  qualifiers, it will not work for versions of S-lang
  <http://www.jedsoft.org/slang/> prior to 2.1.  It is also unlikely to
  work with newer development versions of Grace (grace-6) because the
  mechanism used for communicating with Grace-5 appears to be
  unsupported in Grace-6.  The module interacts with Grace
  <http://plasma-gate.weizmann.ac.il/Grace/> via a one-way pipe that
  feeds it commands using the approach recommended in the Grace User's
  Guide <http://plasma-gate.weizmann.ac.il/Grace/doc/UsersGuide.html>.
  As this pipe is one-way, it is impossible for the module to query
  Grace <http://plasma-gate.weizmann.ac.il/Grace/> about its plotting
  state.  For this reason, the module tries to maintain enough state to
  avoid potential conflicts with Grace.  For example, the module will
  not instruct Grace to switch to a log scale without first making sure
  that no negative values have been plotted. If negative values were
  plotted, the module will first change the world-coordinate system to
  values that are appropriate for log plots.

  The development for this release has been focused towards the types of
  2-D graphs that are common in the physical sciences--- specifically,
  Cartesian (X,Y) plots with various combinations of error-bars.  While
  the module can be used to produce pie and bar charts, no work has been
  done to facilitate the construction of such graphs.  A future version
  of the module will address these shortcomings.


  [1m2.  Tutorial[0m


  A tutorial is available online from
  <http://www.jedsoft.org/slang/modules/grace/tutorial.html>.  It will
  not be repeated here.


  [1m3.  Grace Module Function Reference[0m


  [1m3.1.  grace_new[0m


      [1mSynopsis[0m
        Creata a new grace plotting instance

      [1mUsage[0m
        Struct_Type grace_new ( [args] )

      [1mDescription[0m
        This function creates a new instance of a grace plotting object.
        When called with no arguments, it starts up xmgrace using the
        -nosafe command-line argument.  If a different set of arguments
        are desired, then those may be specified as an array of strings.
        For example, to start Grace via xmgrace -fixed -nosafe, use


               g = grace_new (["xmgrace", "-fixed", "-nosafe"]);



     Note that the name of the application to run (xmgrace in this case)
     must be the first element in the array.  If the DISPLAY environment
     variable is not set, the gracebat application will be started
     instead.


      [1mSee Also[0m
        ``grace.plot'', ``grace.close'', ``grace.save''


  [1m3.2.  grace.plot[0m


      [1mSynopsis[0m
        Plot points or lines

      [1mUsage[0m
        .plot (x [,y [,dy]] [;qualifiers])

      [1mDescription[0m
        The plot method erases the currently active plot and then plots
        the specified points.  If called with a single argument, that
        argument will be used as the y points, and [1,2,...]  will be
        used as the x points.  If called with 3 arguments, the third
        argument will be used as an error bar.

      [1mQualifiers[0m


             logx[=0|1]            Turn on/off log scaling for the x axis
             logy[=0|1]            Turn on/off log scaling for the y axis
             line=int              Linestyle (0 = no line)
             color=int|str         Line color
             width=float           Line width
             fill=int
             fillcolor=int         Color for the fill region
             fillpat=int           Pattern index for filling
             sym=int               Plot symbol (0 = none)
             symcolor=int|str      Symbol color
             symsize=float         Symbol size (float)
             symfillcolor=int|str  Color used to fill symbols
             symfill=int
             grid[=0|1|2|3]        Draw grid: 0:none, 1:major, 2:minor, 3:major+minor
             dropline              Draw a dropline for each point
             graphtype=str         One of "xy", "xydx", "xydy", "xydxdy", etc..



     The following qualifiers control various attributes of the error-
     bars:


             errorbar_place=str
             errorbar_color=int|str
             errorbar_pattern=int
             errorbar_linestyle=int
             errorbar_linewidth=float
             errorbar_riser_linewidth=float
             errorbar_riser_linestyle=int
             errorbar_riser_clip_length=float



     Note: Using a negative value for sym is equivalent to setting
     line=0 and sym=abs(sym).

      [1mExample[0m


             x = [-10:10:#50];
             y = sin(x);
             g = grace_new ();
             g.plot (x, y ; sym=-4, symfill=2);

      [1mNotes[0m
        Use the .get_colors method to see what colors are available.

      [1mSee Also[0m
        ``grace_new'', ``grace.oplot'', ``grace.hplot'',
        ``grace.multi'', ``grace.tick''



  [1m3.3.  grace.focus[0m


      [1mSynopsis[0m
        Set the focus to a specified plot

      [1mUsage[0m
        grace.focus ( [ [nth] | [nrow,ncol] ] )}

      [1mDescription[0m
        This method is used to change the focus of the plotting commands
        to a specified graph in a multi-plot situation.  When called
        without arguments, the focus will be changed to the next graph.
        When called with the single argument nth, the focus will be set
        to the nth plot (nth=1,2,..).  When called with 2 arguments, the
        first argument specifies the row and the second argument
        specfies the column (row,col = 1,2,..).

      [1mExample[0m


             g = grace_new ();
             g.multi (2, 1; sizes=[3,1]);
             g.focus (1,1);
             g.plot (x,y);
             g.focus (2,1);
             g.plot (x,sin(x*y));



      [1mSee Also[0m
        ``grace.multi''



  [1m3.4.  grace.oplot[0m


      [1mSynopsis[0m
        Overplot points or lines

      [1mUsage[0m
        .oplot (x [,y [,dy]] [;qualifiers])

      [1mDescription[0m
        The oplot method may be used to add additional points or lines
        to a plot.  It behaves like plot except that it does not erase
        the current plot.  See the plot method documentation for more
        details.

      [1mSee Also[0m
        ``grace.plot'', ``grace.clear''



  [1m3.5.  grace.tick[0m


      [1mSynopsis[0m
        Control the axis tick marks

      [1mUsage[0m
        .tick ([enable_major [,enable_minor]] [;qualifiers])

      [1mDescription[0m
        This method may be used to control various aspects of the ticks
        marks.  If called with one argument, the major tics may be
        turned on or off according to whether the argument is non-zero
        or not.  A non-zero value turns on the generation of major
        ticks, and a value of zero turns off their generation.  The
        optional second parameter controls the generation of minor ticks
        in a similar manner.  Most other attributes are controlled by
        qualifiers.

      [1mQualifiers[0m


            offsetx=int      offset the axis in the x direction by val
            offsety=int      offset the axis in the y direction by val
            majorstyle=int   linestyle for major ticks
            majorwidth=int   line width for major ticks
            majorsize=int    size of the major ticks
            majorcolor=val   color of the major ticks
            minorstyle=int   linestyle for minor ticks
            minorwidth=int   line width for minor ticks
            minorsize=int    size of the minor ticks
            minorcolor=val   color of the minor ticks
            majorgrid=0|1    enable(1) or disable the major grid
            minorgrid=0|1    enable(1) or disable the minor grid



      [1mExample[0m


            g = grace_new ();
            g.tick(;minorstyle=2);
            g.plot(x,y;grid=3);



      [1mNotes[0m
        The tick method operates on both the x and y axes.  Use the
        xtick and ytick methods for control over the corresponding axes.

        The linestyle, width, and color of the major and minor grid
        lines are controlled by the corresponding tick attributes.

      [1mSee Also[0m
        ``grace.xtick'', ``grace.ytick'', ``grace.plot''



  [1m3.6.  grace.label[0m


      [1mSynopsis[0m
        Add a text label to a graph

      [1mUsage[0m
        .label (string, x, y [;qualifiers])

      [1mDescription[0m
        This method may be used to add a text label to the current graph
        at the specfied world coordinate.

      [1mQualifiers[0m


             viewport    Use viewport coordinates instead of world coordinates
             world       Use world coordinates (default)
             rot=angle   Rotate the text by the specified angle
             font=int    Use the specified font
             just=int    justification: left=0, right=1, 2=center
             size=float  Character size to use (default=1)



      [1mNotes[0m
        It is not a good idea to mix calls to this method with the
        creation of new text strings via the GUI.  As Grace does not
        permit an external program to delete individual strings, the
        grace module keeps an internal table of string ids that have
        been used.  New strings created via the GUI invalidate the
        table, and there is no way for the module to know that this has
        happened.

      [1mSee Also[0m
        ``grace.xlabel'', ``grace.title'', ``grace.ylabel''



  [1m3.7.  grace.save[0m


      [1mSynopsis[0m
        Save the plot to a file

      [1mUsage[0m
        .save(filename [;device])

      [1mDescription[0m
        This method saves the plot to the specified filename.  Normally
        the file format is determined from the filename extension, e.g.,
        foo.ps indicates that postscript format is to be used.  This
        device qualifier may be used to explicitely specify the format.

      [1mExample[0m


              g.save ("foo.eps");            % Encapsulated Postscript
              g.save ("foo.agr");            % Grace format
              g.save ("foo.out"; device=png);



      [1mSee Also[0m
        ``grace.close''



  [1m3.8.  grace.new_color[0m


      [1mSynopsis[0m
        Add a color to the colormap

      [1mUsage[0m
        .new_color (name, rgb)

      [1mDescription[0m
        The new_color method may be used to define a new color name, or
        redefine an existing color.  The rgb parameter must be an
        integer that encodes the RGB value to be associated with the
        name.  The id qualifier may be used to map the color to a
        specific color id value.

      [1mExample[0m


             g.new_color ("royalblue", 0x4169E1);
             g.new_color ("royalblue", (65 shl 16)|(105 shl 8)|225);



     The latter example shows how to construct the rgb-encoded integer
     from decimal rgb values.

      [1mSee Also[0m
        ``grace.plot'', ``grace.get_colors''



  [1m3.9.  grace.get_colors[0m


      [1mSynopsis[0m
        Get a list of the color names

      [1mUsage[0m
        String_Type[] = .get_colors()

      [1mDescription[0m
        This method returns an array of the color names that have been
        defined.

      [1mExample[0m


             slsh> print (g.get_colors());



      [1mSee Also[0m
        ``grace.new_color'', ``grace.plot''



  [1m3.10.  grace.multi[0m


      [1mSynopsis[0m
        Arrange graphs into a rectangular grid

      [1mUsage[0m
        .multi(nrows,ncols [;qualifiers]

      [1mDescription[0m
        This method may be used to layout graphs onto a rectangular grid
        consisting of nrows and ncols.  Qualifiers may be used to
        specify the horizontal and vertical separations of the graphs.

      [1mQualifiers[0m


             vgap=value     Controls the vertical spacing between graph windows.
             hgap=value     Controls the horizontal spacing between graph windows.
             offset=value   Sets the distance from the page edges.



     The values for the vgap and hgap qualifiers appear to be fractions
     of the graph viewport size.  The default values are vgap=0.3 and
     hgap=0.3.  The value of the offset qualifier appears to a fraction
     of the page size; the default value is 0.15.

      [1mSee Also[0m
        ``grace.viewport''



  [1m3.11.  grace.viewport[0m


      [1mSynopsis[0m
        Set the viewport for the current graph

      [1mUsage[0m
        .viewport(xmin,xmax,ymin,ymax)

      [1mDescription[0m
        This method may be used to set the viewport for the current
        graph.  Each of the values must be expressed as a fraction of
        the longer page-size value.  For example, if the page size is
        8.5 by 11 inches, in portrait mode, then the X viewport
        coordinate runs from 0 to 8.5/11=0.773, and the Y coordinate
        runs from 0 to 1.  The rationale behind this stems from the
        desire to keep the physical size of the viewport an invariant
        with respect to landscape or portrait mode.

      [1mSee Also[0m
        ``grace.pagesize''



  [1m3.12.  grace.pagesize[0m


      [1mSynopsis[0m
        Set the page size

      [1mUsage[0m
        .pagesize(dx, dy | "letter" | "a4" [;qualifiers])

      [1mDescription[0m
        This method may be used to set the size of the plotting page.
        The value dx and dy are interpreted as 1/72 of an inch by some
        plot devices, and as pixels by others.  Alternatively, a single
        string such "a4" or "letter" may be used to select the
        corresponding page size.

        After calling this method it is a good idea to re-adjust the
        viewport.  An easy way to do this is to use the .multi method.

      [1mQualifiers[0m


              units="cm"|"in"       Interpret dx and dy in the corresponding units
              landscape             Use landscape mode
              portrait              Use portrait mode



      [1mExample[0m


              g.pagesize (14, 12 ; units="cm");
              g.multi(1,1);



      [1mSee Also[0m
        ``grace.viewport'', ``grace.multi''



  [1m3.13.  grace.hplot[0m


      [1mSynopsis[0m
        Plot a histogram

      [1mUsage[0m
        .hplot(x, y [,dy1 [,dy2]] [;qualifiers])

      [1mDescription[0m
        This method is typically used to to plot binned data.  In this
        context, x is an array that represents the lower bin edges and y
        is an array that gives the value of each bin.  If the optional
        third or fourth arguments are present, the corresponding error
        bars (symmetric or asymmetric) will also be plotted.

      [1mQualifiers[0m
        The hplot method accepts the same set of qualifiers as the the
        plot method.  However, the sym qualifier is ignored unless
        error-bars are drawn, in which case the symbol is associated
        with the error bar.

      [1mExample[0m


             xbins = [1:1024:8];
             h = hist1d (xbins, pnts);
             g.plot (xbins, h, sqrt(h) ; color="red", sym=2);



      [1mNotes[0m
        The array x that specifies the lower bin edges must be in an
        increasing order such that x[j+1]>x[j].


      [1mSee Also[0m
        ``grace.plot'', ``grace.ohplot''



  [1m3.14.  grace.ohplot[0m


      [1mSynopsis[0m
        Overplot a histogram

      [1mUsage[0m
        .ohplot()

      [1mDescription[0m
        This method may be used to add a histogram plot to a graph.  See
        the hplot method for additional information.

      [1mSee Also[0m
        ``grace.hplot'', ``grace.oplot''



  [1m3.15.  grace.xrange[0m


      [1mSynopsis[0m
        Set the world coordinates for the X axis

      [1mUsage[0m
        .xrange(xmin, xmax)

      [1mDescription[0m
        This method may be used to assign world coordinate ranges for
        the X axis.  If xmin or xmax is NULL, the corresponding limit
        will be computed from the data.

      [1mExample[0m


             xrange (min(x), max(x));
             xrange (,max(x));          % Set just the upper limit
             xrange (,);                % Turn on autoscaling for this axis



      [1mSee Also[0m
        ``grace.yrange'', ``grace.world''



  [1m3.16.  grace.yrange[0m


      [1mSynopsis[0m
        Set the world coordinates for the Y axis

      [1mUsage[0m
        .yrange()

      [1mDescription[0m
        This method may be used to assign world coordinate ranges for
        the Y axis.  If ymin or ymax is NULL, the corresponding limit
        will be computed from the data.

      [1mExample[0m


             xrange (min(y), max(y));
             xrange (,max(y));          % Set just the upper limit
             xrange (,);                % Turn on autoscaling for this axis



      [1mSee Also[0m
        ``grace.xrange'', ``grace.world''



  [1m3.17.  grace.world[0m


      [1mSynopsis[0m
        Set the world coordinates

      [1mUsage[0m
        .world( [ xmin,xmax,ymin,ymax ])

      [1mDescription[0m
        This method may be used to assign world coordinate ranges for
        the X and Y axes of the current graph.  If any of these values
        is NULL, the corresponding limit will be computed from the data
        (autoscaling).  When called without arguments, all limits will
        be computed from the data.

      [1mSee Also[0m
        ``grace.xrange'', ``grace.yrange'', ``grace.viewport''



  [1m3.18.  grace.ylabel[0m


      [1mSynopsis[0m
        Add the Y-axis label

      [1mUsage[0m
        .ylabel(string)

      [1mDescription[0m
        This method may be used to add a label to the Y axis.

      [1mQualifiers[0m


              color=int|str    Label color
              size=float       Label Size
              font=int         Font id



      [1mSee Also[0m
        ``grace.xlabel'', ``grace.title'', ``grace.label''


  [1m3.19.  grace.xlabel[0m


      [1mSynopsis[0m
        Add the X-axis label

      [1mUsage[0m
        .xlabel()

      [1mDescription[0m
        This method may be used to add a label to the X axis.

      [1mQualifiers[0m


              color=int|str    Label color
              size=float       Label Size
              font=int         Font id



      [1mSee Also[0m
        ``grace.ylabel'', ``grace.title'', ``grace.label''



  [1m3.20.  grace.title[0m


      [1mSynopsis[0m
        Add the title to the graph

      [1mUsage[0m
        .title(string)

      [1mDescription[0m
        This method may be used to add a title to the top of the current
        graph.

      [1mQualifiers[0m


              color=int|str    Label color
              size=float       Label Size
              font=int         Font id



      [1mSee Also[0m
        ``grace.xlabel'', ``grace.ylabel'', ``grace.subtitle'',
        ``grace.label''



  [1m3.21.  grace.subtitle[0m


      [1mSynopsis[0m
        Add the subtitle to the graph

      [1mUsage[0m
        .subtitle(string)

      [1mDescription[0m
        This method may be used to add a subtitle to the top of the
        current graph under the main graph title.

      [1mQualifiers[0m


              color=int|str    Label color
              size=float       Label Size
              font=int         Font id



      [1mSee Also[0m
        ``grace.xlabel'', ``grace.ylabel'', ``grace.title'',
        ``grace.label''



  [1m3.22.  grace.redraw[0m


      [1mSynopsis[0m
        Redraw the Grace display

      [1mUsage[0m
        .redraw()

      [1mDescription[0m
        This method is sometimes necessary to tell Grace to redraw or
        refresh display.

      [1mSee Also[0m
        ``grace.plot''



  [1m3.23.  grace.clear[0m


      [1mSynopsis[0m
        Clear the current graph

      [1mUsage[0m
        .clear()

      [1mDescription[0m
        This function may be used to clear the current graph.  Is it not
        normally needed since the plot and hplot methods automatically
        do this.

      [1mSee Also[0m
        ``grace.kill'', ``grace.close'', ``grace.plot''



  [1m3.24.  grace.close[0m


      [1mSynopsis[0m
        Close the grace session


      [1mUsage[0m
        .close()

      [1mDescription[0m
        This method is used to shutdown the Grace GUI.  Unless this
        function is called, the GUI will remain active even after the S-
        lang <http://www.jedsoft.org/slang/> application has exited.

      [1mSee Also[0m
        ``grace_new'', ``grace.save''



  [1m3.25.  grace.kill[0m


      [1mSynopsis[0m
        Delete the current graph

      [1mUsage[0m
        .kill()

      [1mDescription[0m
        This method may be used to delete the current graph.  It can be
        useful in a multi-plot situation when some graphs are not
        needed.

      [1mSee Also[0m
        ``grace.clear'', ``grace.close''



  [1m3.26.  grace.logx[0m


      [1mSynopsis[0m
        Change the X axis to a log scale

      [1mUsage[0m
        .logx()

      [1mDescription[0m
        This method causes the X axis to use log scaling.  If the
        currently focused graph has a world coordinate system that
        conflicts with log scaling, the world coordinates will be
        changed accordingly (restricted to positive values).

      [1mNotes[0m
        Normally log scaling is specified when the plot is made via the
        plot method's logx qualifier.



  [1m3.27.  grace.logy[0m


      [1mSynopsis[0m
        Change the Y axis to a log scale

      [1mUsage[0m
        .logy()

      [1mDescription[0m
        This method causes the Y axis to use log scaling.  If the
        currently focused graph has a world coordinate system that
        conflicts with log scaling, the world coordinates will be
        changed accordingly (restricted to positive values).

      [1mNotes[0m
        Normally log scaling is specified when the plot is made via the
        plot method's logx qualifier.

      [1mSee Also[0m
        ``grace.logx'', ``grace.linx'', ``grace.liny''



  [1m3.28.  grace.linx[0m


      [1mSynopsis[0m
        Change the X axis to a linear scale

      [1mUsage[0m
        .linx()

      [1mDescription[0m
        This method may be used to cause the X axis of the current graph
        to use linear scaling.

      [1mSee Also[0m
        ``grace.liny'', ``grace.logx'', ``grace.logy''



  [1m3.29.  grace.liny[0m


      [1mSynopsis[0m
        Change the Y axis to a linear scale

      [1mUsage[0m
        .liny()

      [1mDescription[0m
        This method may be used to cause the Y axis of the current graph
        to use linear scaling.

      [1mSee Also[0m
        ``grace.linx'', ``grace.logx'', ``grace.logy''



  [1m3.30.  grace.legend[0m


      [1mSynopsis[0m
        Add a legend to the current graph

      [1mUsage[0m
        .legend(x, y, names)

      [1mDescription[0m
        This method may be used to add a legend to the graph at the
        coordinate (x,y).  The legend is formed from the names array and
        representative lines or symbols used to draw the corresponding
        curves.


      [1mQualifiers[0m
        These qualifiers control attribute of the objects in the legend
        box:


              font=int            Font id
              size=float          character size (default: 1)
              color=int|str       color
              vgap=int
              hgap=int
              length=int



     The following qualifiers control the legend box itself:


              loctype=str             "world" or "view"   (default: "world")
              box=0|1                 Turn the box off(0) or on(1)
              box_line=int            Line style
              box_color=int|str       Line color
              box_linewidth=float
              box_pattern=int
              box_fillcolor=int|str
              box_fillpattern=int



      [1mExample[0m


             g.plot (x,f(x));
             g.oplot (x,g(x));
             g.legend (2.1, 3.9, ["f(x)", "g(x)"]; box=0);



      [1mSee Also[0m
        ``grace.label'', ``grace.title'', ``grace.plot''



  [1m3.31.  grace.xtick[0m


      [1mSynopsis[0m
        Adjust the X axis ticks

      [1mUsage[0m
        .xtick()

      [1mDescription[0m
        This method may be used to control certain attributes of the X
        axis tick marks.  See the documentation for the tick method for
        more information.

      [1mSee Also[0m
        ``grace.tick'', ``grace.ytick''



  [1m3.32.  grace.ytick[0m


      [1mSynopsis[0m
        Adjust the Y axis ticks

      [1mUsage[0m
        .ytick()

      [1mDescription[0m
        This method may be used to control certain attributes of the Y
        axis tick marks.  See the documentation for the tick method for
        more information.

      [1mSee Also[0m
        ``grace.tick'', ``grace.ytick''



  [1m3.33.  grace.new_color[0m


      [1mSynopsis[0m
        Define a new color name

      [1mUsage[0m
        .new_color(name, RGB)

      [1mDescription[0m
        This method may be used to add a new named color or redefine a
        named color.  The first parameter is a string that specifies the
        name of the color, and the second is a 3 element integer array
        whose successive elements specify the Red, Green, and Blue
        content of the color.  0-255. for the color.

      [1mQualifiers[0m
        id=int     Map the named color to the specified color id or
        index

      [1mExample[0m


             g.new_color("skyblue3", [108, 166, 205]);
             g.plot (x,y; color="skyblue3");



      [1mSee Also[0m
        ``grace.get_colors'', ``grace.plot''



