  Xmgr User Guide
  Evgeny Stambulchik
  v0.1, 15 June 1997

  The draft xmgr user guide
  ______________________________________________________________________

  Table of Contents:

  1.      Introduction

  1.1.    Terminology

  1.1.1.  Sets

  1.1.2.  Graphs

  1.1.3.  Regions

  1.1.4.  Parameters

  1.2.    Installation

  1.3.    Comments and bug reports

  1.4.    Copyright

  2.      Using xmgr

  2.1.    Execution

  2.2.    Command line parameters

  2.3.    Setting xmgr defaults

  2.4.    Setting xmgr X defaults

  2.5.    Environment variables

  2.6.    Batch printing

  3.      Guide to menus and popups

  3.1.    Main panel

  3.2.    File

  3.2.1.  Open

  3.2.2.  Save

  3.2.3.  Save as

  3.2.4.  Describe

  3.2.5.  Read sets

  3.2.6.  Read netCDF

  3.2.7.  Read parameters

  3.2.8.  Read block data

  3.2.9.  Write sets

  3.2.10. Write parameters

  3.2.11. Clear all

  3.2.12. Print

  3.2.13. Printer setup

  3.2.14. Exit

  3.3.    Data operations

  3.3.1.  Status

  3.3.2.  Results

  3.3.3.  Commands

  3.3.4.  Transformations

  3.3.4.1.        Evaluate expressions

  3.3.4.2.        Load values

  3.3.4.3.        Load and evaluate

  3.3.4.4.        Histogram

  3.3.4.5.        Fourier

  3.3.4.6.        Running averages

  3.3.4.7.        Regression

  3.3.4.8.        Non-linear curve fitting

  3.3.4.9.        Differences

  3.3.4.10.       Seasonal differences

  3.3.4.11.       Integration

  3.3.4.12.       X-corr

  3.3.4.13.       Interpolation

  3.3.4.14.       Spline

  3.3.4.15.       Sample

  3.3.4.16.       Digital filter

  3.3.4.17.       Linear convolution

  3.3.4.18.       Geometric transformations

  3.3.5.  Point operations

  3.3.5.1.        AID CDATA find

  3.3.5.2.        AID CDATA tracker

  3.3.5.3.        AID CDATA del

  3.3.5.4.        AID CDATA add

  3.3.5.5.        AID CDATA move

  3.3.5.6.        AID CDATA movex

  3.3.5.7.        AID CDATA movey

  3.3.5.8.        AID CDATA distance

  3.3.5.9.        AID CDATA goto

  3.3.6.  Set operations

  3.3.6.1.        Pick ops

  3.3.6.2.        Activate

  3.3.6.3.        Deactivate

  3.3.6.4.        Re-activate

  3.3.6.5.        Set length

  3.3.6.6.        Change Set type

  3.3.6.7.        Copy

  3.3.6.8.        Move

  3.3.6.9.        Swap

  3.3.6.10.       Drop points

  3.3.6.11.       Join

  3.3.6.12.       Split

  3.3.6.13.       Kill

  3.3.6.14.       Kill all

  3.3.6.15.       Sort

  3.3.6.16.       Write set(s)

  3.3.6.17.       Reverse order

  3.3.6.18.       Coalesce sets

  3.3.6.19.       Pack sets

  3.3.7.  Edit/Create set operations

  3.3.7.1.        Edit

  3.3.7.2.        Formula

  3.3.7.3.        Manual

  3.3.8.  Region operations

  3.3.8.1.        Define region

  3.3.8.2.        Evaluate in region

  3.3.8.3.        Clear region

  3.3.8.4.        Extract points

  3.3.8.5.        Delete points

  3.3.8.6.        Area/perimeter

  3.3.9.  Graph operations

  3.3.9.1.        Activate

  3.3.9.2.        Copy

  3.3.9.3.        Swap

  3.3.9.4.        Kill

  3.3.9.5.        Focus

  3.3.9.6.        Show

  3.3.9.7.        Set graph type

  3.3.9.8.        Arrange graphs

  3.3.9.9.        Overlay

  3.3.9.10.       Invert/flip axes

  3.3.9.11.       Image

  3.3.10. Block data

  3.3.11. Hot links

  3.4.    Plot functions

  3.4.1.  World scaling

  3.4.2.  Viewport

  3.4.3.  Autoscale

  3.4.4.  Title/subtitle

  3.4.5.  Ticks/tick labels

  3.4.6.  Frame

  3.4.7.  Symbols

  3.4.8.  Error bars

  3.4.9.  Legends

  3.4.10. Strings & Things

  3.4.11. Time stamp

  3.5.    Options

  3.5.1.  Page

  3.5.2.  View

  3.5.3.  Draw options

  3.5.4.  Working directory

  3.5.5.  Misc.

  4.      Command interpreter reference and parameter file format

  4.1.    Introduction

  4.2.    Reference

  4.3.    EXIT

  4.4.    Devices

  4.5.    Display

  4.6.    Set operations

  4.7.    Block data

  4.8.    Graph operations

  4.9.    Transformations

  4.10.   Autoscaling

  4.11.   Graph focus

  4.12.   Locator

  4.13.   IO

  4.14.   Boxes

  4.15.   Lines

  4.16.   Strings

  4.17.   World

  4.18.   World stack

  4.19.   Viewport

  4.20.   Title and subtitle

  4.21.   Sets

  4.22.   Legend

  4.23.   Graph frame

  4.24.   Graph axes

  4.25.   Tick marks

  4.26.   Tick labels

  4.27.   Axes label strings

  4.28.   Graphs

  5.      Hot keys

  6.      Double clicks

  7.      Fonts
  ______________________________________________________________________

  11..  IInnttrroodduuccttiioonn

  xxmmggrr is an XY plotting tool for workstations or X-terminals using X. A
  few  of its features are:

  +o  User defined scaling, tick marks, labels, symbols, line styles,
     colors.

  +o  Batch mode for unattended plotting.

  +o  Read and write parameters used during a session.

  +o  Polynomial regression, splines, running averages, DFT/FFT,
     cross/auto-correlation.

  +o  Hardcopy support for PostScript, HP-GL, and FrameMaker .mif format.

  While xmgr has a convenient point-and-click interface, most parameter
  settings and operations are available through a command line interface
  (found in ``''Data/Commands).

  11..11..  TTeerrmmiinnoollooggyy

  11..11..11..  SSeettss

  Sets are collections of points, with optional associated values at
  these points. The associated values can be used to display error bars,
  high-low open-close plots and several other features. Sets are
  connected to a graph, and, by default, there are 30 sets per graph.
  Each set is numbered from 0 to the maximum number of sets less one.
  The number of points in a set is limited by the size of virtual memory
  and are numbered from 1 to N where N is the total number of points in
  the set.  Operations to manipulate sets are found in ``''Data/Set
  operations, and features such as line styles, symbol types, and others
  can be changed from ``'' GGrraapphh//SSyymmbboollss.

  11..11..22..  GGrraapphhss

  Graphs are the collection of data sets, tick marks, titles, etc. drawn
  to display the data. By default, there are 10 graphs with each graph
  owning 30 sets (both the number of graphs and the number of sets are
  adjustable via command line parameters). Operations on graphs are
  found in the ``'' GGrraapphhss//GGrraapphh ooppeerraattiioonnss popup.

  There are numerous popups accessible through Graphs pulldown menu that
  allow the manipulation of graph parameters.  Most graph operations
  work on what is referred to as the `current graph', marked by small
  filled rectangles at the corners of one graph. The 10 graphs available
  by default in this version of xmgr are numbered from 0 to 9.

  11..11..33..  RReeggiioonnss

  Regions are sections of the graph defined by the interior or exterior
  of a polygon, or a half plane defined by a line. A region defined by a
  line can be above, below, to the right, or left of the line. Defining
  regions and operations on points inside regions are found in ``''
  Data/Region operations.

  11..11..44..  PPaarraammeetteerrss

  Parameters are the settings of symbols, line styles, colors, fonts,
  etc.  used to define graphs and the display of the active sets.

  11..22..  IInnssttaallllaattiioonn

  To install xmgr, refer to the document INSTALL found in the xmgr
  distribution. This will describe the details to successfully install
  xmgr.

  11..33..  CCoommmmeennttss aanndd bbuugg rreeppoorrttss

  For bug reports, comments, etc., use the "Help/Comments" on-line
  report facility.

  The home of xmgr sources and documentation is <http://plasma-
  gate.weizmann.ac.il/Xmgr/>http://plasma-gate.weizmann.ac.il/Xmgr/

  11..44..  CCooppyyrriigghhtt

       Copyright 1995 by Paul J Turner, Portland, OR

                               All Rights Reserved

       Permission to use, copy, modify, and distribute this software and its
       documentation for any purpose and without fee is hereby granted,
       provided that the above copyright notice appear in all copies and that
       both that copyright notice and this permission notice appear in
       supporting documentation.

       PAUL J TURNER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
       ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
       PAUL J TURNER BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
       ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
       WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
       ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
       SOFTWARE.

  22..  UUssiinngg xxmmggrr

  22..11..  EExxeeccuuttiioonn

  The interactive xxmmggrr program is called xxmmggrr, if used in batch mode,
  ggrrbbaattcchh.  If ggrrbbaattcchh is not found, contact your system administrator,
  or see the section on installation. For grbatch to work properly it is
  important that it be called ggrrbbaattcchh as it is the name that
  distinguishes xxmmggrr from ggrrbbaattcchh. They are the same program, but when
  executed as ggrrbbaattcchh, the X interface is not initialized and ggrrbbaattcchh
  terminates at the end of execution without user intervention.

  Please note that ggrrbbaattcchh does not read the any X resource files, so
  that it can be run from dumb terminals and over phone lines. Don't
  expect resource settings used for xxmmggrr to work for ggrrbbaattcchh. See the
  section on setting defaults using a  <#defaults> ..xxmmggrrrrcc  file.

  22..22..  CCoommmmaanndd lliinnee ppaarraammeetteerrss

        --aauuttoossccaallee _x or _y or _x_y

        Autoscale the x axis, y axis, or both axes, overiding the
        settings for axes scaling and tick mark spacing  given in any
        parameter file specified by the -p option.

        Example:

        xmgr -autoscale x -p params.par data.dat

     Reads parameters from params.par and data from data.dat, but over-
     rides any settings for the X axis found in the parameter file.

      --nnooaauuttoo
        _y or _y or _x_y

        Suppress autoscaling on the given axis (axes). Use this when a
        data file has imbedded commands that provide axes scaling and
        tick mark spacing.

      --aarrrraannggee
        _r_o_w_s _c_o_l_u_m_n_s

        Arrange graphs in column major order starting from the lower
        left corner in a grid _r_o_w_s by _c_o_l_u_m_n_s. For example, _-_a_r_r_a_n_g_e _2 _2
        will position the first four graphs (0, 1, 2, 3) in a 2x2 matrix
        of graphs starting with graph 0 in the lower left corner of the
        plotting surface.  This function is not as complete as the
        similar function found in Graph/Graph operations/Arrange
        <graphops.html#arrange> and gives a sightly different result.

        Example:

        xmgr -arrange 2 2

     Creates a 2x2 matrix of graphs.

      --rroowwss
        _r_o_w_s Arrange the first _r_o_w_s _g_r_a_p_h_s in _r_o_w_s rows.

      --ccoollss
        _c_o_l_u_m_n_s

        Arrange the first _c_o_l_u_m_n_s graphs in _c_o_l_u_m_n_s columns.

      --rreessuullttss
        _r_e_s_u_l_t_s___f_i_l_e

        Write the results of regression and anything else that gets
        written to the results popup to file _r_e_s_u_l_t_s___f_i_l_e.

      --ddeevviiccee
        _d_e_v_i_c_e___n_u_m_b_e_r

        Set the hardcopy device to _d_e_v_i_c_e___n_u_m_b_e_r.  The device numbering
        follows:

     +o  1 .. PostScript landscape

     +o  2 .. PostScript portrait

     +o  3 .. FrameMaker .mif landscape

     +o  4 .. FrameMaker .mif portrait

     +o  5 .. HPGL landscape

     +o  6 .. HPGL portrait

     +o  7 .. InterLeaf landscape

     +o  8 .. InterLeaf portrait

        Example:

        xmgr -device 2

     Sets the hardcopy device to PostScript portrait.

      --eeppss
        Tell the PostScript driver to produce EPS.

      --pprriinnttffiillee
        _g_r_a_p_h_i_c_s___o_u_t_p_u_t___f_i_l_e

        Write the graphics output to file _g_r_a_p_h_i_c_s___o_u_t_p_u_t___f_i_l_e rather
        than spool graphics data to a printer.

      --ffiixxeedd
        _w_i_d_t_h _h_e_i_g_h_t

      --ppoorrttrraaiitt

      --llaannddssccaappee

      --ffrreeee
        Set the dimensions of the drawing area. Presently, there is no
        connection between the hardcopy drivers and these settings. This
        means that the printer needs to be set to conform to the
        dimensions of the drawing area.

     +o  -free - allow the drawing area to be resized (no scrollbars will
        appear).

     +o  -fixed _w_i_d_t_h _h_e_i_g_h_t - set the drawing area to have dimensions
        _w_i_d_t_h _a_n_d _h_e_i_g_h_t

     +o  -portrait - set the drawing area to be 8.5x11 in portrait.

     +o  -landscape - set the drawing area to be 8.5x11 in landscape.

      --bbaattcchh
        _b_a_t_c_h___f_i_l_e

        Execute the commands in _b_a_t_c_h___f_i_l_e on startup. This command line
        switch is not the same as executing xmgr in batch mode as
        ggrrbbaattcchh.

      --nnooaasskk
        Assume the answer is yes to all requests, This means that files
        will be overwritten without asking if they exist, and, if Exit
        is selected in the GUI, xxmmggrr will exit abruptly. This option can
        be used to overwrite existing files in batch mode. Be careful.

      --ggrraapphh
        _g_r_a_p_h___n_u_m_b_e_r

        Make _g_r_a_p_h___n_u_m_b_e_r the current graph. _G_r_a_p_h___n_u_m_b_e_r is an integer
        between 0 and maxgraph-1 (by default maxgraph, the maximum
        number of graphs, is 10).

        For example, to activate four graphs and read data to each
        graph:

        xmgr -arrange 2 2 data0.dat -graph 1 data1.dat -graph 2 data2.dat -graph 3
        data3.dat

     This command creates 4 graphs arranged in a 2x2 matrix, and reads a
     file into each graph.

      --ggrraapphhttyyppee
        _g_r_a_p_h___t_y_p_e

        Set the current graph type to _g_r_a_p_h___t_y_p_e. Where _g_r_a_p_h___t_y_p_e is
        one of:

     +o  xy           linear scaling along both x and y.

     +o  logx         linear scaling in y, log scaling in x.,

     +o  logy         linear scaling in x, log scaling in y.

     +o  logxy        log scaling in both x and y.

     +o  bar          vertical bar chart.

     +o  hbar         horizontal bar chart.

     +o  stackedbar   vertical stacked bar chart.

     +o  stackedhbar  horizontal stacked bar chart.

      --ttyyppee
        _d_a_t_a___s_e_t___t_y_p_e

        The format of the next data source is _d_a_t_a___s_e_t___t_y_p_e. Where
        _d_a_t_a___s_e_t___t_y_p_e is one of xxyyddxx (XY data with error bars along X),
        xxyyddyy (XY data with error bars along Y), xxyyddxxddxx (XY data with
        error bars along X of differing values), xxyyddyyddyy (XY data with

        error bars along Y of differing values), xxyyddxxddyy (error bars
        along X and Y), xxyyrr (a circle drawn at XY of radius R) and
        xxyyhhiilloo (XY data with high-low open-close data). This setting
        remains in effect until a new format type is specified.

      --iihhll
        _I_H_L___f_o_r_m_a_t_t_e_d___f_i_l_e

        Assume _I_H_L___f_o_r_m_a_t_t_e_d___f_i_l_e or the next source of data is in IHL
        format (a local format).

      --nnxxyy
        The format of the next data source is X1, Y1, Y2, ..., Yn.

      --xxyyddxx
        The format of the next data source is X Y DX

      --xxyyddyy
        The format of the next data source is X Y DY

      --xxyyddxxddxx
        The format of the next data source is X Y DX1 DX2

      --xxyyddyyddyy
        The format of the next data source is X Y DY1 DY2

      --xxyyddxxddyy
        The format of the next data source is X Y DX DY

      --xxyyzz
        The format of the next data source is X Y Z where Z is a value
        drawn as text at X, Y.

      --xxyyrr
        The format of the next data source is X Y R, where a circle of
        radius R is drawn at X, Y.

      --xxyybbooxx
        The format of the next data source is XMIN YMIN XMAX YMAX VALUE,
        where (XMIN, YMIN) is the lower lefthand corner of a rectangle
        and (XMAX, YMAX) are the upper righthand corner of a rectangle.
        VALUE is an integer used to specify the color to use to fill the
        rectangle. To set the fill, use Graph/Symbols and set the fill
        style to anything but None.

      --bbooxxpplloott
        The format of the next data source is X AVG

      --iihhll
        The format of the next data souce is in IHL format, this format
        leads to a data set of type XY.

      --hhiilloo
        The format of the next data source is X HIGH LOW OPEN CLOSE,
        where a symbol denoting the open, close, the high and the low
        values for an observation is drawn at X.

      --nneettccddff
        _n_e_t_C_D_F _f_i_l_e

      --nneettccddffxxyy [[
        _x_v_a_r or _"_n_u_l_l_"_] _y_v_a_r

        Where _x_v_a_r and _y_v_a_r are the names of the variables to read.  if
        _x_v_a_r == "null", then load the index of yvar.  These command line
        options may be used to read variables from a netCDF file. For
        example:

        xmgr -netcdf t.nc -netcdfxy null y

     Reads y from t.nc and loads to X the index (starting from 1).

     xmgr -netcdf t.nc -netcdfxy x y -netcdfxy x1 y1

     Reads x and y from t.nc, then x1 and y1 from the same file.  2 sets
     are created, both of type XY, one with (x, y), the other composed
     of (x1, y1).

     another example reading data from 2 CDF files:

     xmgr -netcdf t.nc -netcdfxy x y -netcdf t2.nc -netcdfxy x1 y1

      --ssaavveeaallll
        _f_i_l_e_n_a_m_e

        Write all active sets to _f_i_l_e_n_a_m_e.

      --wwdd
        Set the current working directory. This option can be used to
        read files from several different directories. For example:

        xmgr -wd examples mlo.dat -wd ../moredat brw.d hilo.dat

     Unfortunately, this option not allow wild cards, as they are
     expanded in the current directory only.

      --iimmaaggee
        _X___w_i_n_d_o_w___d_u_m_p___f_i_l_e

        Read the window dump file _X___w_i_n_d_o_w___d_u_m_p___f_i_l_e. The format is the
        same as generated by xwd or Frame's capture utility.

      --iimmaaggeexxyy
        _X _Y

        Set the upper lefthand corner position of the image at screen
        coordinates (X, Y). Note that screen coordinates have as their
        origin the upper lefthand corner of the drawing area and
        positive, increasing Y points down.

      --bblloocckk
        Assume the format of the next data file is block data. No sets
        are formed by reading block data, and only one set of block data
        is allowed in an active session. To create sets from the block
        data, use Edit/Block data.

      --bbxxyy
        _c_o_l_1_:_c_o_l_2

        Create sets from a previously read block data. Using -bxy
        col1:col2, will create a set using the current set type (default
        is XY) and using column _c_o_l_1 and column _c_o_l_2 from the most
        recently read set of block data. _C_o_l_1 and _c_o_l_2 are integers
        indicating the numbers of the columns - column numbers start
        from 1. For example:

          xmgr -block block.d -bxy 1:4 -bxy 2:6

     will read block.d and generate 2 sets of type XY using columns 1
     and 4 for the first set, and 2 and 6 for the second set.
       xmgr -block block.d -type xydy -bxy 1:3:4

     will read  block.d and generate a set of type XYDY (an XY set with
     error bars) using column 1 and 3 for X and Y, and column 4 for the
     error bars.

      --lloogg
        _x or _y or _x_y

        Set the current graph type to logarithmic depending the the
        string _x or _y or both axes by _x_y.

      --ppaarraammeetteerr
        _p_a_r_a_m_e_t_e_r___f_i_l_e

      --pp
        _p_a_r_a_m_e_t_e_r___f_i_l_e

        Read the parameter file parameter_file.

      --ppeexxeecc
        _p_a_r_a_m_e_t_e_r___s_t_r_i_n_g

        Interpret _p_a_r_a_m_e_t_e_r___s_t_r_i_n_g as a parameter setting.

      --rreessuulltt
        _r_e_s_u_l_t___f_i_l_e

        Write results from regression to result_file

      --rrvviiddeeoo
        Exchange the color indices for black and white.

      --mmoonnoo
        Limit colors to black and white, affects the display only.

      --ddcc
        Allow double click canvas operations, overriding any application
        default setting.

      --nnooddcc
        Disallow double click canvas operations.

      --rreeddrraaww
        Redraw the entire page if xmgr receives an Expose event.

      --nnoorreeddrraaww
        Do not redraw the entire page when Expose events are received.

      --mmaaxxccoolloorrss
        _n_u_m_b_e_r___o_f___c_o_l_o_r_s

        Set the maximum number of colors allocated. For example:

        xmgr -maxcolors 18 -pexec "cmap 17,255,0,255"

     Sets the maximum number of colors to 18 and sets color 17 to cyan.
     Colors 0-15 are set to the defaults, color 16 is undefined (the
     actual color will vary).

      --ffrreeeeccoolloorrss
        Attempt to free colors which are assigned a different colormap
        entry.  See nnooffrreeeeccoolloorrss below.  This is the default behavior.

      --nnooffrreeeeccoolloorrss

        Doesn't attempt to free colors which are assigned a different
        colormap entry.  Use this if one of the colors you use is the
        same as one of the button or border colors and you subsequently
        change that color.  This shouldn't be a problem unless you're
        really unlucky.  Using this switch can cause you to eat up all
        the colors in your colormap if you change colors a lot during a
        session.  This is equivalent to setting the X resource

        <#freeColorsXR>XXMMggrr..ffrreeeeCCoolloorrss to false.

      --wwoorrlldd
        _x_m_i_n _y_m_i_n _x_m_a_x _y_m_a_x

        Set the scaling of the axes for the current graph. The X axis
        will run from _(_x_m_i_n_, _x_m_a_x_) the Y axis from _(_y_m_i_n_, _y_m_a_x_)

      --vviieeww
        _x_m_i_n _y_m_i_n _x_m_a_x _y_m_a_x

        Set the viewport of the current graph to a rectangle described
        by

        _(_x_m_i_n_, _y_m_i_n_) and _(_x_m_a_x_, _y_m_a_x_).

      --ssoouurrccee
        _d_a_t_a___s_o_u_r_c_e

        Set source for the next data file, the argument takes on the
        following values:

     +o  ddiisskk     - Data file is on disk.

     +o  ppiippee     - Read from a pipe.

     +o  ssttddiinn    - xmgr is in a pipe, read from standard input.

        The source setting stays in effect until the next -source
        command is given.

      --ppiippee
        Read from standard input and plot each set when the end of the
        set is seen.  Use the -pipe option to monitor the results coming
        from a model or other data stream.

      --rreemmoovvee
        Erase the most recently read file. Use this option when using
        xmgr to read a temporarily constructed file that is not needed
        once read. Note that this option does not request confirmation.

      --lleeggeenndd llooaadd
        For each data set read, make the set legend label the same as
        the filename the data set originated.

      --sseeeedd
        _s_e_e_d___v_a_l_u_e

        Initialize the random number generator using seed _s_e_e_d___v_a_l_u_e.
        This value is used in a call to the math library function
        srand48().

      --GGXXiinnvveerrtt

      --GGXXxxoorr
        GXinvert and GXxor set the type of graphics operation used to
        draw rubberband lines and draw the graph focus markers. In a
        colormapped display, the xor of a source and destination pixel
        may not generate a color visible on the drawing area. The
        default is to use xor to draw rubberband lines, if the lines
        don't show, try -GXinvert. This draw mode can be set via X
        resource settings (see below).

      --mmaaxxpplloott
        _n_u_m_b_e_r___o_f___s_e_t_s

        Set the maximum number of data sets per graph.  _N_u_m_b_e_r___o_f___s_e_t_s
        must be greater than 30. If -maxplot is used in conjunction with
        -maxgraph, then the -maxplot setting must precede the -maxgraph
        setting.

      --mmaaxxggrraapphh
        _n_u_m_b_e_r___o_f___g_r_a_p_h_s

        Set the maximum number of graphs per session.  _N_u_m_b_e_r___o_f___g_r_a_p_h_s
        must be greater than 10. If -maxgraph is used in conjuction with
        -maxplot, then -maxplot must precede the use of -maxgraph.

      --nnoonnll
        Activate the Non-linear curve fitting module. WARNING, this
        module is a prototype and should not be used for analysis.

      --ddiiggiitt
        Activate the Digitizing module. WARNING, this module is a
        prototype and should not be used for analysis.

      --uussaaggee
        Display a brief explanation of command line settings

        _d_a_t_a___f_i_l_e_s

        The files or commands in the case of a pipe from which data are
        read.

  22..33..  SSeettttiinngg xxmmggrr ddeeffaauullttss

  On startup xmgr will look for a ..xxmmggrrrrcc file in the users' home
  directory allowing changes to the default behavior of xmgr. The
  construction of the xmgr default file is the same as for a parameter
  file.

  22..44..  SSeettttiinngg xxmmggrr XX ddeeffaauullttss

  The following X resource settings are supported:

  +o  XMgr.invertDraw: False

     Use GXinvert to draw rubberband lines and the graph focus markers
     if this resource is set to True.

  +o  XMgr.reverseVideo: False

     A boolean resource used to exchange the color indices for black and
     white.

  +o  XMgr.maxSets: 30

     Set the number of sets per graph.

  +o  XMgr.maxGraphs: 10

     Set the number of graphs.

  +o  XMgr.maxColors: 17

     Set the number of colors allocated. There is no support in the
     graphical portion of the  user interface for more than 16.

  +o  XMgr.verifyAction: No

     Applies to the Pick set operations and allows an opportunity to
     accept or cancel any  operation performed.

  +o  XMgr.allowDoubleClick: Yes

     When Yes, allow double clicks on the canvas to bring up various
     popups depending on  the location of the pointer when the double
     click occurs. Double clicking to the right of  a graph brings up
     the View/Ticks popup set to the Y-axis, below the graph brings up
     the  View/Ticks popup set to the X-axis, inside the graph brings up
     the files popup if no sets  are active or the View/Symbols popup
     set to the set nearest the pointer. Double clicking  above the
     graph brings up the View/Title-subtitle popup, to the right of the
     graph, the  View/Legend popup.

     The command line option to set this resource is -dc or -nodc.

  +o  XMgr.autoscaleOnRead: No

     When this resource is Yes or True, allow autoscaling to occur each
     time a set is read  from the File/Read sets popup.

  +o  XMgr.backingstore: No

     Have xmgr handle backing store if the server doesn't.

     The command line option for this is -bs or -nobs.

  +o  XMgr.freeColors: True

     See documentation for the command line option
     <#freeColorsSW>--nnooffrreeeeccoolloorrss.  Using that command line switch is
     equivalent to setting this resource to false.

  It is also possible to customize menus by assigning key accelerators
  to any item.

  The list below describes the menu labels and related X resources. For
  example, in order to make xmgr popup the Non-linear curve fitting by
  pressing Control+F, you would add the following two lines

  XMgr*transformationsMenu.nonLinearFit.acceleratorText: Ctrl+F

  XMgr*transformationsMenu.nonLinearFit.accelerator: Ctrl<Key>f

  to your .Xresources file (the file which is read when an X session
  starts; it could be .Xdefaults, .Xsession or some other file - ask
  your system administrator when in doubt).

  +o  XMgr*fileMenu.open  Open...

  +o  XMgr*fileMenu.save  Save

  +o  XMgr*fileMenu.saveAs  Save as...

  +o  XMgr*fileMenu.describe  Describe...

  +o  XMgr*readMenu.sets  Sets...

  +o  XMgr*readMenu.netCDF  NetCDF...

  +o  XMgr*readMenu.parameters  Parameters...

  +o  XMgr*readMenu.blockData  Block data...

  +o  XMgr*readMenu.image  Image...

  +o  XMgr*writeMenu.sets  Sets...

  +o  XMgr*writeMenu.parameters  Parameters...

  +o  XMgr*fileMenu.clearAll  Clear all

  +o  XMgr*fileMenu.print  Print

  +o  XMgr*fileMenu.printerSetup  Printer setup...

  +o  XMgr*fileMenu.exit  Exit

  +o  XMgr*dataMenu.status  Status...

  +o  XMgr*dataMenu.results  Results...

  +o  XMgr*dataMenu.commands  Commands...

  +o  XMgr*transformationsMenu.evaluateExpression  Evaluate expression...

  +o  XMgr*transformationsMenu.loadValues  Load values...

  +o  XMgr*transformationsMenu.loadEvaluate  Load & evaluate...

  +o  XMgr*transformationsMenu.histograms  Histograms...

  +o  XMgr*transformationsMenu.fourierTransforms  Fourier transforms...

  +o  XMgr*transformationsMenu.runningAverages  Running averages...

  +o  XMgr*transformationsMenu.regression  Regression...

  +o  XMgr*transformationsMenu.nonLinearFit  Non-linear curve fitting...

  +o  XMgr*transformationsMenu.diffrences  Differences...

  +o  XMgr*transformationsMenu.seasonalDifferences  Seasonal
     differences...

  +o  XMgr*transformationsMenu.integration  Integration...

  +o  XMgr*transformationsMenu.correlation  Cross/auto correlation...

  +o  XMgr*transformationsMenu.interpolation  Interpolation...

  +o  XMgr*transformationsMenu.splines  Splines...

  +o  XMgr*transformationsMenu.samplePoints  Sample points...

  +o  XMgr*transformationsMenu.digitalFilter  Digital filter...

  +o  XMgr*transformationsMenu.linearConvolution  Linear convolution...

  +o  XMgr*transformationsMenu.geometricTransforms  Geometric
     transforms...

  +o  XMgr*dataMenu.pointOperations  Point operations...

  +o  XMgr*setOperationsMenu.pickOperations  Pick operations...

  +o  XMgr*setOperationsMenu.activate  Activate...

  +o  XMgr*setOperationsMenu.deactivate  De-activate...

  +o  XMgr*setOperationsMenu.reactivate  Re-activate...

  +o  XMgr*setOperationsMenu.setLength  Set length...

  +o  XMgr*setOperationsMenu.changeType  Set type...

  +o  XMgr*setOperationsMenu.copy  Copy...

  +o  XMgr*setOperationsMenu.move  Move...

  +o  XMgr*setOperationsMenu.dropPoints  Drop points...

  +o  XMgr*setOperationsMenu.join  Join...

  +o  XMgr*setOperationsMenu.split  Split...

  +o  XMgr*setOperationsMenu.kill  Kill...

  +o  XMgr*setOperationsMenu.killAll  Kill all

  +o  XMgr*setOperationsMenu.Sort  Sort...

  +o  XMgr*setOperationsMenu.reverse  Reverse...

  +o  XMgr*setOperationsMenu.coalesce  Coalesce...

  +o  XMgr*setOperationsMenu.swap  Swap...

  +o  XMgr*setOperationsMenu.pack  Pack...

  +o  XMgr*transformationsMenu.editCreateSet  Edit/create set...

  +o  XMgr*regionOpearationsMenu.define  Define...

  +o  XMgr*regionOpearationsMenu.evaluate  Evaluate...

  +o  XMgr*regionOpearationsMenu.clear  Clear...

  +o  XMgr*regionOpearationsMenu.extractPoints  Extract points...

  +o  XMgr*regionOpearationsMenu.extractSets  Extract sets...

  +o  XMgr*regionOpearationsMenu.deletePoints  Delete points...

  +o  XMgr*regionOpearationsMenu.killSets  Kill sets...

  +o  XMgr*regionOpearationsMenu.reportOn  Report on...

  +o  XMgr*regionOpearationsMenu.areaPerimeter  Area/perimeter...

  +o  XMgr*graphOperationsMenu.activate  Activate...

  +o  XMgr*graphOperationsMenu.copy  Copy...

  +o  XMgr*graphOperationsMenu.swap  Swap...

  +o  XMgr*graphOperationsMenu.kill  Kill...

  +o  XMgr*graphOperationsMenu.focus  Focus...

  +o  XMgr*graphOperationsMenu.show  Show...

  +o  XMgr*graphOperationsMenu.setType  Set type...

  +o  XMgr*graphOperationsMenu.arrange  Arrange...

  +o  XMgr*graphOperationsMenu.overlay  Overlay...

  +o  XMgr*graphOperationsMenu.invertFlipAxes  Invert/flip axes...

  +o  XMgr*transformationsMenu.blockData  Block data...

  +o  XMgr*transformationsMenu.hotLinks  Hot links...

  +o  XMgr*plotMenu.worldScaling  World scaling...

  +o  XMgr*plotMenu.viewport  Viewport...

  +o  XMgr*plotMenu.autoscale  Autoscale...

  +o  XMgr*plotMenu.titles  Titles...

  +o  XMgr*plotMenu.tickLabelsMarks  Tick labels/tick marks...

  +o  XMgr*plotMenu.frame  Frame...

  +o  XMgr*plotMenu.symbols  Symbols...

  +o  XMgr*plotMenu.errorBars  Error bars...

  +o  XMgr*plotMenu.legends  Legends...

  +o  XMgr*plotMenu.stringsThings  Strings & things...

  +o  XMgr*plotMenu.timeStamp  Time stamp...

  +o  XMgr*pageMenu.free  Free

  +o  XMgr*pageMenu.landscape  Landscape

  +o  XMgr*pageMenu.portrait  Portrait

  +o  XMgr*pageMenu.fixed  Fixed

  +o  XMgr*pageMenu.size  Size...

  +o  XMgr*viewMenu.locatorBar  Locator bar

  +o  XMgr*viewMenu.statusBar  Status bar

  +o  XMgr*viewMenu.toolBar  Tool bar

  +o  XMgr*viewMenu.setLocatorFixedPoint  Set locator fixed point

  +o  XMgr*viewMenu.clearLocatorFixedPoint  Clear locator fixed point

  +o  XMgr*viewMenu.locatorProps  Locator props...

  +o  XMgr*optionsMenu.draw  Draw...

  +o  XMgr*optionsMenu.workingDirectory  Working directory...

  +o  XMgr*optionsMenu.misc  Misc...

  +o  XMgr*helpMenu.onContext  On context

  +o  XMgr*helpMenu.userGiude  User Guide

  +o  XMgr*helpMenu.faq  FAQ

  +o  XMgr*helpMenu.changes  Changes

  +o  XMgr*helpMenu.comments  Comments

  +o  XMgr*helpMenu.about  About...

  22..55..  EEnnvviirroonnmmeenntt vvaarriiaabblleess

  +o  GR_HOME

     Set the location of xmgr. This will be where help files, auxillary
     programs, and examples are located. If you are unable to find the
     location of this directory, contact your system administrator.

  +o  GR_PS_PRSTR

     Set the command string to use for spooling to a PostScript printer.
     The default (unless changed during the build process) is "lpr -h".

  +o  GR_MIF_PRSTR

     Set the command string to use for printing the FrameMaker .mif
     format. The default (unless changed during the build process) is
     "cat < acegr.mif > ", i.e., output is to a file.

  +o  GR_HPGL_PRSTR

     Set the command string to use for spooling to an HPGL capable
     printer or plotter.

  +o  GR_HDEV

     Select the hardcopy device.

     The device numbering is as follows:

  +o  1.     PostScript landscape

  +o  2.     PostScript portrait

  +o  3.     FrameMaker interchange format (.mif) landscape

  +o  4.     FrameMaker interchange format (.mif) portrait.

  +o  5.     HPGL landscape

  +o  6.     HPGL portrait

  +o  7.     Interleaf landscape

  +o  8.     Interleaf portrait

  +o  GR_EDITOR

  Set the name of the editor to use in Data/Edit-Create set. The default
  is vi.

  22..66..  BBaattcchh pprriinnttiinngg

  Executing xmgr as ggrrbbaattcchh suppresses the initialization of the
  graphical user interface and allows hardcopy plots to be made without
  intervention.

  33..  GGuuiiddee ttoo mmeennuuss aanndd ppooppuuppss

  33..11..  MMaaiinn ppaanneell

  There are 5 main areas in the display, the menu bar at the top, the
  locator bar just below, the toolbar along the lefthand side of the
  display, the status bar at the bottom, and the drawing area where
  graphics are drawn.  The following items describe the locator bar, the
  toolbar, and the status bar.

  +o  TTooooll bbaarr

     The toolbar runs along the lefthand side of the display, and
     provides functions to manipulate the axes scaling of active graphs,
     by scrolling and mouse powered zooms.

  +o  Draw

     Click on DDrraaww to freshenup the drawing area with the current set of
     graphs, parameters and active sets. Most operations perform an
     automatic redraw, this may be undesirable in the cases where the
     sets are large or there are several active graphs. By playing with
     the options in GGrraapphh//DDrraaww ooppttiioonnss and using the DDrraaww button, much
     of the tedium associated with slow redraw rates can be alleviated.
     If you feel something should have happened after performing an
     operation, press this button to force a draw operation to freshenup
     the display. If the X display being used does not do backing store,
     then DDrraaww will give a clean picture if the graphics get damaged
     when overlaid by popups or other applications.

  +o  Zoom

     Zoom

  +o  Autoscale

     Click on Autoscale to generate a default scaling for both the X and
     Y axes in the current graph.

  +o  Expand

     Click on Expand to incrementally zoom in on the data.

  +o  Shrink

     Click on Shrink to incrementally zoom out from the data.

  +o  Page left

     Click on Left to incrementally shift the axes to the left.

  +o  Page right

     Click on Right to incrementally shift the axes to the right.

  +o  Page down

     Click on Down to incrementally shift the axes down.
  +o  Page up

     Click on Up to incrementally shift the axes up.

  +o  Auto ticks

     Using any of the buttons that affect the scale of the axes, it is
     likely that unpleasing tickmarks will result. By clicking on AutoT,
     the tick spacing will be set using the current autoscaling
     parameters (set in Graph/Autoscale).

  +o  Auto scale on a picked set

     Click on AutoO then click near a point in the set of interest to
     autoscale the current graph with respect to the selected set's
     bounding box.

  +o  Zoom X

     Select a Zoom line used to scale the X axis of the current graph.

  +o  Zoom Y

     Select a Zoom line used to scale the Y axis of the current graph.

  +o  Auto X

     Autoscale the X axis only.

  +o  Auto Y

     Autoscale the Y axis only.

  +o  Push 'n zoom

     Save the current graph's axes scales and tickmark settings, and
     prepare for a zoom. This function can be used to zoom in on an area
     of interest, then restore the previous graph scale.

  +o  Push

     Save the current graph's axes scales and tickmark settings for
     later retrieval. Use Pop to restore.

  +o  Pop

     Restore the current graph's axes scale saved from the most recent
     use of Push.

  +o  Cycle

     Cycle allows the contents of the current graph's world stack to be
     displayed in stack order. The contents of the stack are unaffected.

  +o  Stack depth

     Report on the current depth of the stack. Each graph has its own
     stack.

  +o  Current world

     When cyling through the current graph's worl stack, display the
     position in the stack.

  +o  Exit

     Exit xmgr.

  +o  Locator bar The Locator bar, found directly under the main menu
     bar, displays the current graph and the position of the pointer. To
     set properties of the locator display text, see VViieeww//LLooccaattoorr pprrooppss.

  +o  Status bar The Status bar, at the bottom of the display, reports on
     items of interest and provides a line of help when the mouse is
     used in any operation.

  33..22..  FFiillee

  Read data from disk or pipes, read variables from netCDF or HDF files,
  read and write plot parameters, read block data, write one or more
  xmgr datasets, set the current working directory, set the printer
  options, print (hardcopy), and exit.

  33..22..11..  OOppeenn

  Open an existing binary or ascii xmgr file, abandoning the current
  plot.

  33..22..22..  SSaavvee

  Save the current plot using the last specified name and save format.

  33..22..33..  SSaavvee aass

  Select the name and format for saving the current plot.

  33..22..44..  DDeessccrriibbee

  Add a text description to a plot. This will only be saved if binary
  format is used.

  33..22..55..

  RReeaadd sseettss

  Read one or more data sets. The list item at the top of the popup
  displays the contents of the current directory. Select a file or
  directory by clicking on the item with the right mouse button. The
  selection is placed in the text item labeled `File:' and checked to
  see if it is a directory or a file.  Selecting a directory causes xmgr
  to change to the new directory and reload the file list with the
  contents of the new directory. Selecting a file does nothing until the
  `Accept' button is pressed or < return > is entered. Before
  `Accept'ing the file, the items describing the file type, file source,
  and the graph in which to read the data need to be properly set.  The
  type of data file can be one of several formats:

  +o  A 2 column multi-data set file. Sets are separated by a line
     containing non-numeric characters, that are neither comment lines
     (lines with a `#' in column 1) nor parameter lines (lines beginning
     with an `@').  The sets generated from this file type are all of
     type XY.

  +o  A multi column data file. X is assumed to be in the first column,
     and Y1, Y2, ..., up to Y30 in the remaining columns. The sets
     generated with this data file format are all of type XY.

  +o  IHL format. A 3 column data file with the first line an integer
     value with the number of points to follow.

  +o  Binary format. - not defined as of this writing.

  +o  X Y DX format. A 3 column data file consisting of X, Y and a
     quantity used to form an error bar parallel to the X-axis, i.e.,
     the point will be plotted with an error bar at (X+-DX, Y).

  +o  X Y DY format. A 3 column data file consisting of X, Y and a
     quantity used to form an error bar parallel to the Y-axis, i.e.,
     the point will be plotted with an error bar at (X, Y+-DY).

  +o  X Y DX1 DX2 format. A 4 column data file consisting of X, Y, and
     the errors in X. The error bar riser is drawn from (X+DX1,Y) to (X-
     DX2,Y).  If both DX1 and DX2 are > 0 then the error bar will
     bracket the datum.  If DX2 is < 0 and DX1 > 0 the error bars are
     drawn to the right of the datum. Likewise, if DX1 <  0 and DX2 >  0
     the error bar is drawn to the left of the datum.

     There are 4 cases for the error bars' position with respect to the
     datum:

  +o  1.     DX1 >  0 and DX2 >  0 ... Error bars bracket the datum.

  +o  2.     DX1 >  0 and DX2 <  0 ... Error bars are drawn to the right
     of the datum.

  +o  3.     DX1 <  0 and DX2 >  0 ... Error bars are drawn to the left
     of the datum.

  +o  4.     DX1 <  0 and DX2 <  0 ... Error bars bracket the datum, but
     reversed from case 1.

  +o  X Y DY1 DY2 format. A 4 column data file consisting of X, Y, and
     the errors in Y. The error bar riser is drawn from (X, Y+DY1) to
     (X, Y-DY2). If both DY1 and DY2 are > 0 then the error bar will
     bracket the datum. If DY2 is < 0 and DY1 >  0 the error bars are
     drawn to the right of the datum. Likewise, if DY1 <  0 and DY2 >  0
     the error bar is drawn to the left of the datum. There are 4 cases
     for the error bars' position with respect to the datum:

  +o  1.     DY1 >  0 and DY2 >  0 ... Error bars bracket the datum.

  +o  2.     DY1 >  0 and DY2 <  0 ... Error bars are drawn above the
     datum.

  +o  3.     DY1 <  0 and DY2 >  0 ... Error bars are drawn below the
     datum.

  +o  4.     DY1 <  0 and DY2 <  0 ... Error bars bracket the datum, but
     reversed from case 1.

  +o  X Y DX DY format.  A 4 column data file consisting of X, Y, and the
     errors in X and Y. The error bar risers are drawn from (X+DX, Y) to
     (X-DX, Y) and (X, Y+DY) to (X, Y-DY).

  +o  X Y Z format. A 3 column data file consisting of X, Y, Z.  Sets
     with this type are drawn with the Z value in text at (X, Y).

  +o  X Y R format. A 3 column data file consisting of X, Y, R. Sets with
     this type are drawn with a circle of radius R at (X, Y).

  +o  X HI LO OPEN CLOSE format. A 5 column data file consisting of the
     high, low, open and close values for an observation at X. A data
     set of this type uses the line style, line width and line color for
     a normal set when the symbol is drawn.

  RReeaadd ffrroomm:: sets the source of the data, either a disk file or a pipe.
  In the case of a pipe, the information provided by the file filter
  item is not used, as the `file' in this case will be a command as
  typed at the UNIX prompt.

  RReeaadd ttoo ggrraapphh:: selects a particular graph to serve as the repository
  for the incoming data. The `Current' graph is the graph that has the
  focus, and can be any of the available graphs. If you aren't sure
  which graph is current, the locator item on the main panel displays
  the current graph number.

  Selecting AAuuttoossccaallee oonn rreeaadd:: forces an autoscale of the target graph
  each time a set is read.

  NNoottee: Data are read into the next available set. All data are assumed
  to be delimited by tabs or blanks.

  For the xy, xydx, xydy, xydxdx, xydydy, xydxdy, xyz, xyr data file
  formats, sets are separated by a line containing non-numeric
  characters, that are neither comment lines (lines with a '#' in column
  1) nor parameter lines (lines beginning with an `@'). Data files can
  have imbedded comments by placing a `#' in the first column of the
  comment line. Plot parameters can be set by placing a `@' in the first
  column of the line followed immediately by the parameter name and
  setting. See the command line reference for a description of plot
  parameters and other commands that may be placed in a data file using
  the `@' character. Comment lines and parameter lines can occur at any
  place in the data file, and are not used to indicate data set
  separators. I recommend a single `&' on a line to use as a data set
  separator.

  Press AAcccceepptt to read the data. If the read was successful, the graph
  of the data is drawn using the current plot scaling parameters. If the
  data lies outside the current plotting limits, the new set(s) will not
  be visible until the plotting limits are changed by autoscaling or
  manually through the View/Define world popup <graphs.html#world>.

  Press CCaanncceell to close the popup.

  Open the Status popup <#status> to get information on the state of
  sets. If reading  the file generates more than 10 errors you'll be
  prompted by an alert requesting whether or not  you'd like to
  continue. These errors generally arise when an attempt is made to read
  a  text file - xmgr relies on the interpretive capabilities of
  sscanf() to parse the data.  xmgr will read data sets until there are
  no more sets available, after the maximum  number of sets have been
  used, you'll need to free some sets using the [Kill] or [Kill all]
  items in the Edit/Set operations pullright.

  33..22..66..

  RReeaadd nneettCCDDFF

  File/Read netCDF

  Select X:    Select Y:

  netCDF file:

  Load to set:

  Autoscale on read

  Accept   Files...   Update   Query   Done

  ---------------------------------------

  Enter the name of the netCDF file in the text item labelled nneettCCDDFF
  ffiillee:: then click on "Update" (note that if -netcdf [filename] was used
  on the command line, this step is not needed, as the lists will be
  loaded automatically). This will read the names of all one dimensional
  variables into the two scrolled lists.  The leftmost list is for X and
  the rightmost for Y. There is an additional item in the X list called
  INDEX (I'm hoping here that no one names a variable INDEX, maybe I
  need to change this) that indicates that for X, use the index of the Y
  variable (numbering starts from 1).

  Select on a variable from the X list to use for X and select a
  variable from the Y list (only single selections for now).

  If information about the selected variables is desired, click on
  Query.

  Select a set using "Load to set:" - the default is to load to the next
  available set.

  If things look OK, click on Accept to read the data and load the set.
  Use "Autoscale on read" to set/unset autoscaling after a successful
  read.

  To read data from a new CDF file, enter the filename, or use File...
  to scan the directory. Click on Update to freshenup the X and Y
  selection lists.

  Note: Presently, only sets of type XY are created.

  Note: xmgr scans and replaces commas with blanks and the `D' in
  Fortran double precision exponential formats with `e'.

  33..22..77..

  RReeaadd ppaarraammeetteerrss

  Enter the parameter file name on the line labeled "File:", press
  "Accept" to read a saved  state of adjustable parameters, legends,
  strings, etc, to the graph selected by the `Read to  graph' cycle. As
  the graph number is saved in the parameter file this isn't used at the
  present time.

  33..22..88..

  RReeaadd bblloocckk ddaattaa

  Select the data source, either Disk or Pipe and enter the block data
  file name in the text  item labeled "File:" to read a data set in
  block data file format.  The  block data file format consists of
  columns of data. For example,  the following is a block data file
  consisting of 4 columns:

      1   2   3   4   5
      6   7   8   9  10
      11 12  13  14  15

  After reading the file of block data, the popup will close if no
  errors were found, and the  Edit/Block data popup will take its place.
  Use the functions in the Edit/Block data  popup to create sets from
  the block data.

  NOTE: All items are assumed delimited by spaces or tabs. There is
  presently a 30 column limit. Only one set of block data per session,
  i.e., reading another set of block data  will obliterate the previous
  set of block data.

  33..22..99..

  WWrriittee sseettss

  Write one or all sets to disk. Select the set to write using the cycle
  displaying the set  numbers (there is an item for selecting all active
  sets).  The item denoted "Format" is the  C language format string
  that will be used to format the data for output - the default  should
  work well for most cases.  Enter the file name on the line labeled
  "File:" and  press the button marked [Accept], to write the data. The
  item, `Imbed parameters,'  causes xmgr to write not only the data, but
  the parameters describing the graph or  graphs as well.

  A complete dump of the contents of xmgr may be accomplished by
  selecting all sets,  imbed parameters, and all active graphs. The file
  generated this way can then be read as  a normal data file, and should
  recreate the originating environment.

  33..22..1100..

  WWrriittee ppaarraammeetteerrss

  Select the graph from which to save the parameters. This can be the
  current graph, any  particular graph, or all active graphs. Enter the
  parameter file name on the line labeled  "Write parameters to", press
  "Accept" to write the current state of adjustable parameters, legends,
  strings, etc. A prompt will appear if the action would overwrite an
  existing  file. allowing the operation to be cancelled.

  33..22..1111..

  CClleeaarr aallll

  Kill all sets, graphs, and annotative text, lines, and boxes. After
  performing this action,  it will be necessary to activate a graph
  using View/Graphs/Activate graphs.

  33..22..1122..

  PPrriinntt

  Generate a hardcopy of the current plot on the device specified in the
  File/Printer setup  popup.

  33..22..1133..

  PPrriinntteerr sseettuupp

  Set the hardcopy device parameters. Select the device, where to print
  (either the printer  or a file), and the string to use as a spooling
  command for the print job, or file name if  output is directed to
  disk. Click on the `Accept' button to make the selections above
  current, or `Done' to close the popup and cancel the operation. If the
  selection is accepted,  the next time File/Print is selected, hardcopy
  output will be to the selected device. Click  on the `Print' button to
  accept the settings and print a hardcopy.

  33..22..1144..

  EExxiitt

  Click on the Exit button to terminate the session with xmgr.

  33..33..  DDaattaa ooppeerraattiioonnss

  Access the command line interpreter, describe the status of data sets,
  graphs and regions, display results of computations and other
  operations, perform transformations, set operations, point operations,
  region operations, block data management.

  33..33..11..

  SSttaattuuss

  When the selection for DDiissppllaayy is RReeggiioonnss, no operations are provided
  at the present time.

  33..33..22..

  RReessuullttss

  Display the results of the regression routine and the output of the
  `Write' button in File/ Status in the monitor window.

  33..33..33..

  CCoommmmaannddss

  Command driven version of the interface to xmgr. Here, commands are
  typed at the  `Command:' text item and executed when < return > is
  entered. The command will be  parsed and executed, and if no errors
  are found, the command line is placed in the history list. Items in
  the history list can be recalled by simply clicking on them with the
  left  mouse button. Save a history list by clicking on the `Save...'
  button popping up the  `Save commands' popup.  Clicking on `Read...'
  will open the `Read commands' popup  and allows previously stored
  commands to be loaded into the history list for future access. `Clear'
  empties the history list. `Replay' cycles through each item in the
  history  list and executes each instruction in the list. See the
  command line reference for a  description of the command line syntax.

  33..33..44..

  TTrraannssffoorrmmaattiioonnss

  NOTE: Some of these operations generate new sets, if you run out of
  sets use Data/Set operations (described below) to kill unneeded sets.
  Also, the scaling of the world coordinate system may be inappropriate
  for the results of many of these operations. Use the Status popup to
  determine the appropriate scaling factors to use in "Define world"
  (above), or use "Autoscale..." (in View/Autoscale above). Most
  functions operate on active sets only.

  33..33..44..11..

  EEvvaalluuaattee eexxpprreessssiioonnss

  Evaluates a formula defined in infix fashion.

  Select the set on which the formula will operate, (set must be active,
  use File/Status to find the current state of sets). If you desire the
  result be loaded to a new set rather than overwriting the set used for
  computations, use the panel cycle denoted `Result to' to inform xmgr
  you'd like the result placed in a new set (if there is one). A new set
  is created only if a single set is selected from step 1. If `All sets'
  are selected then the results will overwrite all active sets.

  Enter the formula, the syntax is:

  (x,y,a,b,c,d)=<expression>

  where (x,y,a,b,c,d) are defined as the x and y of the currently
  selected set and a,b,c,d are scratch arrays that can be used to
  perform operations between sets. Case is ignored, so X=COS(X) is
  correct.

  Click on AAcccceepptt when you are satisfied with everything.

  Variables:

  +o  a == reference to scratch array

  +o  b == reference to scratch array

  +o  c == reference to scratch array

  +o  d == reference to scratch array

  Functions:

  +o  abs(x) == absolute value

  +o  acos(x) == arccosine

  +o  acosh(x) == hyperbolic arccosine

  +o  asin(x) == arcsine

  +o  asinh(x) == hyperbolic arcsine

  +o  atan(x) == arctangent

  +o  atanh(x) == hyperbolic arctangent

  +o  atan2(y,x) == Fortran ATAN2

  +o  ceil(x) == greatest integer function

  +o  cos(x) == cosine

  +o  cosh(x) == hyperbolic cosine

  +o  deg == 180.0/PI

  +o  dx == span of world coordinate system in x

  +o  dy == span of world coordinate system in y

  +o  erf(x) == error function

  +o  erfc(x) == complement of error function

  +o  exp(x) == e^x

  +o  floor(x) == least integer function

  +o  index == the index of the current point in the selected set

  +o  int(x) == truncation

  +o  invn(p) == inverse of standard normal (p in [0,1])

  +o  invt(p,id) == inverse of Student's t with id degrees of freedom

  +o  irand(n) == random integer less than n

  +o  lgamma(x) == log of gamma function

  +o  ln(x) == natural log (should be log)

  +o  log(x) == log base 10 (should be log10)

  +o  max(x,y) == returns greater of x and y

  +o  min(x,y) == returns lesser of x and y

  +o  mod(x,y) == mod function (also x % y)

  +o  norm(x) == gaussian density function

  +o  normp(x) == cumulative gaussian density (-inf,x)

  +o  pi == constant PI

  +o  rad == PI/180.0

  +o  rand == pseudo random number distributed uniformly on (0.0,1.0)

  +o  rnorm(xbar,s) == psuedo random number distributed N(xbar,s)

  +o  sin(x) == sine function

  +o  sin(x) == hyperbolic sine

  +o  sqr(x) == x^2

  +o  sqrt(x) == x^0.5

  +o  tan(x) == tangent function

  +o  tanh(x) == hyperbolic tangent

  +o  x == currently selected set X

  +o  y == currently selected set Y

  Note: See pars.yacc for the yacc grammer.

  Examples:

  y=-y

  y=x*cos(2*x*PI/100)+sqr(x)

  x=(index>10)*(x-5)+(index<=10)*x

  If the index of the current point is greater than 10 then x=x-5 else
  x=x.  Conditionals evaluate to 0 if false, anything else is true.

  a=y

  Store y of the current set into scratch array "a". You may now select
  another set and perform the operation y=somefunctionof(a)

  Restrictions:

  33..33..44..22..

  LLooaadd vvaalluueess

  Load a sequence to (x,y) or (a,b,c,d).

  33..33..44..33..

  LLooaadd aanndd eevvaalluuaattee

  Evaluate parametric functions.

  Enter the functions to be used to define X and Y.

  Select the independant variable (x,y,a,b,c,d).

  Enter the start, stop and the number of points items.

  Press the button AAppppllyy to evaluate the functions and load the result
  to a new set.

  33..33..44..44..

  HHiissttooggrraamm

  Compute a frequency histogram.

  Select the set.

  Enter the width of a bin (all bin widths are the same).

  Enter the minimum and maximum values of the portion of the data you
  wish histoed (sic). Note that Xmin and Xmax refer to the RANGE (or Y)
  of the set, not the domain (or X).

  Press AAcccceepptt to compute the histogram.

  33..33..44..55..

  FFoouurriieerr

  Compute the Discrete Fourier transform.

  Select the set

  Select the type of data window, the default is the rectangular window,
  i.e., the data are transformed unmodified.  The data windows are
  defined as follows:

      NNoonnee
        Use the default rectangular window

      TTrriiaanngguullaarr
        1.0 - |(i-0.5*(N-1))/(0.5*(N-1))|

      HHaannnniinngg
        0.5 * [1-cos(2*pi*i/(N-1))]

      WWeellcchh
        1-((i-0.5*(N-1))/(0.5*(N+1)))^2

      HHaammmmiinngg
        0.54-0.46*cos(2*pi*i/(N-1))

      BBllaacckkmmaann
        0.42-0.5*cos(2*pi*i/(N-1))+0.08*cos(4*pi*i/(N-1))

      PPaarrzzeenn
        1.0 - |(i-0.5*(N-1))/(0.5*(N+1))|

  Select the form of the output, magnitude (spectrum), phase, or the
  coefficients.  The spectrum is computed by sqrt(x*x + y*y) where x, y
  are the coefficients computed by the DFT or FFT. Only N/2 values
  (representing frequencies 0 to PI) are loaded to the resulting set.

  If the magnitude or phase is selected, then the next item, `X = `,
  determines what values should be loaded to X. The index runs from 0 to
  n/2, the frequency is the cyclical ith fourier frequency, the period
  is the reciprocal of the frequency with the period of the 0th fourier
  frequency plotted at T+delt, where T is the total length of the data
  and delt is the sampling interval.

  Select transform or inverse transform.

  Select real or complex data.

  If real is selected, then the data to be transformed is assumed to be
  in Y, X is assumed equally spaced and is ignored. If complex is
  selected then the real part is assumed to be in X and the imaginary
  part in Y.

  Press DFT (for small data sets whose length is not a power of 2) - or
  FFT (for data sets whose length is a power of 2).

  Click on WWiinnddooww oonnllyy to generated a windowed version of the data in a
  new set.

  NOTE: Small for the DFT is < 1000 points. The DFT is O(N**2) and can
  be quite time consuming to compute for large N.

  33..33..44..66..

  RRuunnnniinngg aavveerraaggeess

  Compute a running average, median, minimum, maximum, or standard
  deviation.

  Select the method.

  Select the set.

  Set the length of the running method in the text item marked LLeennggtthh,
  it must be less than the set length.

  Click on AAcccceepptt.

  33..33..44..77..

  RReeggrreessssiioonn

  Perform linear or polynomial regression.

  Select the set.

  Select the degree of fit.

  Select fitted curve or residuals to load.

  Press the button marked "Regress".

  A set is loaded (if there is one) with the resulting curve and a
  summary of the statistical results are written to the RReessuulltt popup.

  Notes:

  The fitting techniques used by xmgr are as follows:

  For linear fits (y=ax+b) a straightforward least squares procedure is
  used. For exponential and power fits, the function to fit is
  linearized, it is important to note that the statistics generated
  refer to the parameters of the linearized function and not the
  original function.

  33..33..44..88..

  NNoonn--lliinneeaarr ccuurrvvee ffiittttiinngg

  1. Select the set you would like to approximate.

  2. The unknown parameters to fit are labelled A0 to A9 (case
     insensitive).  Type in the function using the parameters, starting
     with A0.

  3. Enter the number of parameters.

  4. Adjust the tolerance.

  5. Choose initial values (1 default) and specify bounds (if required)
     for the parameters.
  6. Specify what you would like to view

      FFiitttteedd vvaalluueess
        Value of approximating function at abscissa of selected set

      RReessiidduuaallss
        Error in approximating function at abscissca of selected set

      FFuunnccttiioonn
        Approximating function at abscissa defined by SSttaarrtt, SSttoopp and ##
        ooff ppooiinnttss

  7. Run the fitting routine by specifying the number of convergence
     steps you wish to perform (5/20/100).

  8. LLooaadd the values to a new set if  aauuttoollooaadd not selected.

  9. Look at the results and repeat any of the above steps until
     satisfied. Results will continue to be loaded to the same newly
     created set.

  10.
     Press  AAcccceepptt to make the new set permanent or CCaanncceell to destroy
     it.

  33..33..44..99..

  DDiiffffeerreenncceess

  Numerical differentiation.

  Select the set.

  Select the method - one of forward, backward, or centered difference.
  Assumes unevenly spaced data, increasing in X.

  Click on AAcccceepptt.

  A set is loaded (if there is one) with the resulting curve.

  33..33..44..1100..

  SSeeaassoonnaall ddiiffffeerreenncceess

  Difference a set by a given lag.

  Select the set.

  Enter the value for the lag. Assumptions are evenly spaced data,
  increasing in X.

  Press the button marked AAcccceepptt.

  Use PPiicckk to use the mouse to select the set by clicking near a point
  in the set as displayed in the drawing area.

  A set is loaded (if there is one) with the resulting curve.

  33..33..44..1111..

  IInntteeggrraattiioonn

  Numerical integration.

  Select the set.

  Select the form of the results, the item marked ccuummuullaattiivvee ssuumm will
  construct a set composed of the current value of the integral at a
  given X. Sum only reports just the value on the next line. Assumes
  unevenly spaced data, increasing in X.

  Press the button marked IInntteeggrraattee.

  A set is loaded (if there is one) with the resulting curve if
  ccuummuullaattiivvee ssuumm is chosen.

  33..33..44..1122..

  XX--ccoorrrr

  Cross/auto-correlation

  Select both sets (use the same set if autocorrelation is desired).

  Select the lag, N/3 is a reasonable value (your mileage may vary).

  Select bias - generally this will not make any difference for large
  data sets with lags << the length of the set, I was just curious. The
  difference is division by N (biased) or N-lag (unbiased).  A set is
  loaded (if there is one) with the resulting curve.

  33..33..44..1133..

  IInntteerrppoollaattiioonn

  Create a new set by performing interpolation on one set at abscissas
  from another set. All sets are in the current graph. This will allow
  pointwise mathematical operations to be performed between the new set
  and the set providing the abscissas using the command  interpreter
  <data.html#commands>.

  Choose the set on which to interpolate which will provide the Y
  values. Select a second set which will provide the X values for the
  new set.

  The interpolation method can be a cubic or Akima spline or linear.

  33..33..44..1144..

  SSpplliinnee

  Compute a spline fit to a set

  Select the set.

  Select the starting value of X for the fitted curve.

  Select the ending value of X.

  Select the number of samples. The spline curve will be evaluated at
  X+i*(MaxX - MinX)/Nsteps for each i in (0, Nsteps-1).

  Select the type of the spline. It could be either plain cubic one or
  Akima spline. The latter should be prefered when approximating
  sufficiently non-smooth series.

  Press "Spline"

  A set is loaded (if there is one) with the resulting curve.

  Notes: The code to compute the spline is a literal translation of the
  code in FMM.

  33..33..44..1155..

  SSaammppllee

  Sample a set pointwise or by a logical expression.

  Select the set.

  Select the type of sample, either Start/step or Logical expression.
  If Start/step is selected then enter the starting index to begin the
  sample.

  Select the number of points to skip between samples in SStteepp.  If
  LLooggiiccaall eexxpprreessssiioonn is selected, enter the expression in the text item
  denoted EExxpprr::. Values of the expression not equal to zero are
  interpreted as TRUE, and the point is accepted. Any expression
  evaluating to zero will result in the point being ignored.

  33..33..44..1166..

  DDiiggiittaall ffiilltteerr

  Apply a digital filter to a set.

  Select the set to be filtered

  Select the set with the filter weights.

  33..33..44..1177..

  LLiinneeaarr ccoonnvvoolluuttiioonn

  Perform convolution of 2 sets.

  33..33..44..1188..

  GGeeoommeettrriicc ttrraannssffoorrmmaattiioonnss

  Apply rotations, scaling, and translations to a set.

  Select the order in which to apply the transformations.

  Press the button AAppppllyy to perform the transformation.

  Press the RReesseett to reset values and return to the identity
  transformation.

  Press the RReesseett to reset values and return to the identity
  transformation.

  Restrictions: Only the set X and Y are transformed, additional vectors
  attached to a set, such as error bars, are not transformed.
  33..33..55..

  PPooiinntt ooppeerraattiioonnss

  Operations in PPooiinntt ooppeerraattiioonnss use the pointer to query sets about
  points, delete points in a set, and move points. In all cases where
  interaction is required, pressing the right mouse button with the
  pointer in the drawing area cancels the operation.

  33..33..55..11..

  FFiinndd ppooiinnttss

  Report on a point in a set

  Click on FFiinndd ppooiinnttss.

  Position the pointer close to the data point to identify.

  Press the left mouse button.

  The set, the location in the set, and (X, Y) for the datum nearest to
  the pointer will be displayed in a popup.  Press the right mouse
  button to shut off the FFiinndd ppooiinntt feature.

  33..33..55..22..

  TTrraacckkeerr

  Track points in a set.

  Visit each point of a set in a sequential manner. Click nearest the
  set to track, and use the left mouse button to go forward through the
  set and the middle mouse button to go backwards through the set. The
  right mouse button exits tracking.

  33..33..55..33..

  DDeelleettee ppooiinnttss

  Press DDeelleettee ppooiinntt with the left mouse button to activate.

  Position the pointer close to the data point to delete.

  Press the left mouse button.

  33..33..55..44..

  AAdddd ppooiinnttss

  Add points to a set.  Select the set and press AAdddd ppooiinnttss to append
  points to the selected set by clicking on the location where the point
  is desired. This can be used to (crudely) digitize data from pages
  pasted on the screen.

  33..33..55..55..

  MMoovvee ppooiinnttss

  Press MMoovvee with the left mouse button to activate.

  Position the pointer close to the data point to move.

  Press the left mouse button.

  Move the pointer to the new location and press the left mouse button
  again to register the point's new location.

  33..33..55..66..

  MMoovvee XX oonnllyy

  Click on MMoovvee XX oonnllyy to activate.

  Position the pointer close to the data point to move.

  Press the left mouse button.

  Move the pointer to the new location and press the left mouse button
  again to register the point's new location.

  33..33..55..77..

  MMoovvee YY oonnllyy

  Click on MMoovvee YY oonnllyy to activate.

  Position the pointer close to the data point to move.

  Press the left mouse button.

  Move the pointer to the new location and press the left mouse button
  again to register the point's new location.

  33..33..55..88..

  DDiissttaannccee,, ddyy//ddxx,, aannggllee

  Click on DDiissttaannccee,, ddyy//ddxx,, aannggllee to activate.

  Position the pointer close to the starting point. Press the left mouse
  button. Click again at another point to form a straight line. The
  results are the distance, slope, and the angle from horizontal.
  33..33..55..99..

  GGoottoo

  Enter the X, Y of the point to go to, and press GGoottoo ppooiinntt to have the
  pointer warp to that position on the drawing area.

  33..33..66..

  SSeett ooppeerraattiioonnss

  Set operations allow sets to be created, destroyed, written to disk,
  sorted.

  33..33..66..11..

  PPiicckk ooppss

  Pick ops use the point in a set nearest to the location of the pointer
  when clicked to select the set for the chosen operation. The nearest
  point is determined by the Euclidian distance which can be very
  different from the point that is visually closer. As long as there are
  sets with points, the operation will always be performed, which means
  that a bit of care should be exercised using these operations.

  +o  Kill nearest set

     Kill the set nearest the pointer.

  +o  Copy nearest set

     Select a set to copy with one click, and the destination, which may
     be in another graph, with another click.

  +o  Move nearest set

     Select a set to move with one click, and the destination, which may
     be in another graph, with another click.

  +o  Reverse nearest set

     Select a set to reverse by clicking near a point in a set. The
     result is that the order of the points is reversed (point N becomes
     point 1, and point 1 becomes point number N, etc.).

  +o  De-activate nearest set

     Select a set to deactivate by clicking near a point in a set. The
     result is that the set will act as if undefined for most
     operations, and will not be drawn even if the line or symbol
     selections would cause it to be drawn. The data are not destroyed,
     and the set can be reactivated using the functions in File/Status
     or Data/Set ops.

  +o  Join nearest sets

     Click near a point in one set to use for the join, then click again
     near a point in another set to select the second set. The second
     set will be appended to the end of the first set.

  +o  Delete range in nearest set

     Click near a point in one set to use for the start of the range to
     delete, then again near the point at the end of the range to
     delete. The result is that all points between the 2 selected points
     will be removed from the set, including the 2 points selected.

  +o  Cancel operation

     Cancel any operation in progress.

  The remaining items in the Set ops toolbox allow sets to be created,
  destroyed, written to disk, moved, sorted, deactivated, reactivated.

  33..33..66..22..

  AAccttiivvaattee

  Make a set active and able to participate in operations.

  To activate a set, select the set number, specify the number of points
  in the set and click on "Accept."

  33..33..66..33..

  DDeeaaccttiivvaattee

  Make a set inactive and unable to participate in operations. The data
  associated with a deactivated set are still available and all plot
  parameters associated with the set are unchanged. Use the Re-activate
  set item below to make the set known to xmgr again. This item is
  include for those situations where a set is to be ignored temporarily,
  but needed later in the session.

  Select the set to Deactivate.

  Press the button marked AAcccceepptt.

  33..33..66..44..

  RRee--aaccttiivvaattee

  Undo the effect of Deactivate.

  Select the set to Reactivate, it is a no-op to Reactivate an unused
  set.

  Press the button marked AAcccceepptt.

  33..33..66..55..

  SSeett lleennggtthh

  Set the length of a set.

  Select the set.

  Fill in the item marked Length.

  Press the button marked AAcccceepptt.

  33..33..66..66..

  CChhaannggee SSeett ttyyppee

  Set the type of a set.

  Select the set

  Select the type to set

  Press the button marked "Accept"

  33..33..66..77..

  CCooppyy

  Copy one set to another in a possibly different graph.

  Select the set to copy from.

  Select the set to copy to.

  Select the graph to receive the copy.

  Press the button marked AAcccceepptt.

  33..33..66..88..

  MMoovvee

  Move one set to another in a possibly different graph.

  Select the set to move from.

  Select the set to move to.

  Select the graph to receive the set.

  Press the button marked AAcccceepptt

  33..33..66..99..

  SSwwaapp

  Exchange one set with another.

  Select the sets and the graphs these sets reside.

  Click on AAcccceepptt.

  The contents of the sets plus all parameters associated with the
  display of the sets are exchanged.

  33..33..66..1100..

  DDrroopp ppooiinnttss

  Drop points from a set.

  Select the set.

  Fill in the items "Start drop" and "End drop".

  Press the button marked AAcccceepptt.

  NOTE: Points in a set are numbered from 1 to N, where N is the number
  of points in the set (as opposed to sets which are numbered from 0).

  33..33..66..1111..

  JJooiinn

  Merge 2 sets together.

  Select the set that will be appended.

  Select the set accepting the previous set.

  Press the button marked AAcccceepptt to append the first set to the second.

  33..33..66..1122..

  SSpplliitt

  Divide a set into other sets.

  Select the set to split.

  Enter the length of the resulting sets (say N).

  Press the button marked AAcccceepptt to divide the selected set into (length
  of selected set) / N sets with the remainder to the last set.

  The first set will be the set selected to split and will contain the
  first N points.

  33..33..66..1133..

  KKiillll

  Eliminate a set.

  Select the set to kill or All to kill every active set.

  To save the parameter settings, toggle `Preserve parameters.'

  Press the button AAcccceepptt.

  NOTE: This operation is final.

  33..33..66..1144..

  KKiillll aallll

  Kill all active sets.

  This is an action item, you'll be asked if it is OK to kill all active
  sets.

  33..33..66..1155..

  SSoorrtt

  sort x or y of a set.

  Select set to sort.

  Select which component (x or y) as a key.

  Select the order of the sort.

  Press the button marked AAcccceepptt to sort the set in place.

  33..33..66..1166..

  WWrriittee sseett((ss))

  Write a set(s) to disk.

  Select the set to write or "All" for all sets.

  Fill in the format to use to write, syntax is C, default is "%lf %lf".

  Fill in the item marked "Write to file" with the filename to write.

  Press the button marked AAcccceepptt.

  Note: A complete dump of xmgr may be accomplished by selecting All
  sets, All active graphs and toggling Imbed parameters. The generated
  file may be read as a normal data file and will contain the necessary
  information to completly reconstruct all graphs in the current
  session.

  33..33..66..1177..

  RReevveerrssee oorrddeerr

  Exchange points in a set.

  Select set to reverse.

  Press the button marked AAcccceepptt to reverse the order of a set.

  33..33..66..1188..

  CCooaalleessccee sseettss

  Merge active sets to an inactive set.

  Select set to receive points from all active sets. This selected set
  should not be an active set.

  Press the button marked AAcccceepptt to merge all sets to the selected set.

  33..33..66..1199..

  PPaacckk sseettss

  Move sets so that the set structure in the current graph has no gaps.

  During the course of several operations on sets, gaps can form in the
  set structure. This can result cause problems when doing a Save all,
  as the actual location, i.e. set number,  of the set is not retained
  in the Save file. For example after several operations that create and
  delete sets, the active sets are numbered:

  0, 3, 4, 5, 9

  Following a Pack, the active sets will be numbered:

  0, 1, 2, 3, 4.

  Press the button marked AAcccceepptt to pack all sets in the current graph.

  33..33..77..

  EEddiitt//CCrreeaattee sseett ooppeerraattiioonnss

  Edit/Create set operations allow sets to be created using a formula or
  text editor or edited in a spreadsheet-like fashion.

  33..33..77..11..

  EEddiitt

  Edit is used to alter an existing set by invoking a spreadsheet-like
  editor.  Values are updated by pressing return or when leaving a cell.
  Several buttons appear on the widget:

  +o  Add

     Add a point to a set by copying the currently edited cell and
     appending it directly afterwards

  +o  Delete

     Delete the current point.

  +o  Props...

     Change the format, precision and column widths of the table.

  +o  Update

     Refresh the display. This is useful if the set type changes or the
     number of points changes.

  33..33..77..22..

  FFoorrmmuullaa

  See Load & evaluate  <trans.html#leval>

  33..33..77..33..

  MMaannuuaall

  Create a new set by invoking a text editor.

  33..33..88..

  RReeggiioonn ooppeerraattiioonnss

  33..33..88..11..

  DDeeffiinnee rreeggiioonn

  Define a region of interest on a graph or graphs.

  Select the region, there are 5.

  Select the type of region:

      IInnssiiddee ppoollyyggoonn
        Points inside a closed, non-intersecting polygon are considered
        inside the region.

      OOuuttssiiddee ppoollyyggoonn
        Points outside a closed, non-intersecting polygon are considered
        inside the region.

      AAbboovvee,, bbeellooww,, ttoo tthhee lleefftt,, aanndd ttoo tthhee rriigghhtt
        Regions defining a half-plane, points inside the half-plane are
        considered in the region.

  Select the type of linkage, either a particular graph or all graphs,
  the default is the  current graph.

  Press AAcccceepptt to make the pointer ready for the region definition.  In
  the polygonal region type, define the region by successive clicks with
  the left mouse button, use the right mouse button to register the
  polygon.  In the line case, define the line by clicking on the
  beginning point and end point of the line.

  33..33..88..22..

  EEvvaalluuaattee iinn rreeggiioonn

  Evaluate an expression applied to points within a region.

  Select the region to use.

  Enter the expression, regions are referred to by Rn.x or Rn.y where
  `n' is the number of the region to use. Functions available are the
  same as those in `Evaulate expressions' described above.

  Examples:

  R0.X = R0.X - 1

  33..33..88..33..

  CClleeaarr rreeggiioonn

  Remove a defined region.

  Select the region to remove and press `Apply'.

  33..33..88..44..

  EExxttrraacctt ppooiinnttss

  Extract points from a region to a set

  Select the region to use.

  Select the set to receive the points.

  Select the graph to put the set.

  Click on AAcccceepptt to combine all points within the specified region to
  the specified set and graph.

  33..33..88..55..

  DDeelleettee ppooiinnttss

  Delete points in a region.

  Select the region to use.

  Click on AAcccceepptt to delete all points in all sets within the specified
  region.

  33..33..88..66..

  AArreeaa//ppeerriimmeetteerr

  Compute the area and perimeter of a region. This item doesn't belong
  here as it does not use the region structures.  Click on AArreeaa or
  PPeerriimmeetteerr and use the mouse to define  the region. The area or
  perimeter will be displayed in the text items  AArreeaa ==  or PPeerriimmeetteerr ==
  whichever the case may be.  Use the right mouse button to close the
  region.

  33..33..99..  GGrraapphh ooppeerraattiioonnss

  33..33..99..11..

  AAccttiivvaattee

  Make a graph eligible for receiving the graph focus and other
  operations.  Select the graph to activate and press AAcccceepptt.

  33..33..99..22..

  CCooppyy

  Copy a graph to another graph.

  Select the graph to copy from and the graph to copy to and press
  AAcccceepptt.

  Note: Copying a graph will automatically conceal one of the graphs as
  they will both have the same viewport settings. Some adjustments in
  the viewport settings of either or both graphs will be required for
  each graph to be displayed in a non-overlapping manner.

  33..33..99..33..

  SSwwaapp

  Exchange two graphs.

  Select the first graph then the second and press AAcccceepptt to exchange
  the contents of the two graphs. This can be used to adjust the order
  in which graphs are drawn, as graphs are drawn in numerical order
  starting with graph 0.

  33..33..99..44..

  KKiillll

  Make a graph inactive and free all storage associated with sets.
  Select the graph to kill and press AAcccceepptt.

  33..33..99..55..

  FFooccuuss

  Set the graph focus, the focus policy and toggle the display of focus
  markers.  Select the graph to have the focus, the focus policy, and
  the toggle for the focus markers and press AAcccceepptt.

  Note: Most operations in xmgr act on the current graph. Not noticing
  which graph has the current focus can be a source of frustration when
  working with xmgr - if you plan to work extensively with a particular
  graph, it might be useful to set the focus policy to SSeett to fix xmgr's
  notion of the current graph.

  33..33..99..66..

  SShhooww

  Toggle the display of a one or more graphs.

  Select which graph or graphs to show, then press AAcccceepptt. The default
  is to show all active graphs.

  This item can relieve some of the drudgery when working with multiple
  graphs, especially when some of the graphs contain large data sets.

  33..33..99..77..

  SSeett ggrraapphh ttyyppee

  Set the current graph type to XY, log-linear, linear-log, log-log, bar
  or stacked bar.  Select the graph type, and press AAcccceepptt.

  Note: As of this writing, very little is done to ensure that the data
  are acceptable for log plots.

  33..33..99..88..

  AArrrraannggee ggrraapphhss

  Place several graphs in a non-overlapping manner.

  Select the number of rows and the number of columns, the packing
  method, the vertical and horizontal spacing between graphs in viewport
  coordinates, the start of the first graph in viewport coordinates, and
  how wide and how tall each graph should be. Graphs are laid out in
  column major order starting from the lower left. So, given 3 columns
  and 2 rows the graphs will be laid out as follows:

   1   3   5

   0   2   4

  Given 3 colums and 3 rows:

   2   5   8

   1   4   7

   0   3   6

  Note that graphs are numbered from 0.

  The packing selection packs the graphs vertically, horizontally or
  both. Use this item when there are several graphs with the same X or Y
  axis scaling so graphs on the outside of the packing arrangement
  provide the tick and axis labelling for all graphs in that row or
  column. In the 3x3 example above,selecting packing `both', graphs 3, 6
  will have X-axis tick labels, and graphs 1, 2 will have Y-axis tick
  labels. Graphs 4, 5, 7, 8 will have neither X or Y axis tick labels,
  while graph 0 will have both.

  Note that the graph width is computed using the number of columns,
  horizontal gap, X starting location and packing whenever the number of
  columns is selected. Likewise, the graph height is recomputed using
  the number of rows, packing, vertical gap and starting Y value
  whenever the number of rows is selected. New values for the rows and
  columns need not be chosen for the computation to occur.

  If the number of graphs chosen is decreased, the higher number graphs
  will still be displayed. They must be killed <#kill> or not shown
  <#show> to be removed.

  33..33..99..99..

  OOvveerrllaayy

  Overlay one graph onto another. This can be used to plot sets of
  different scale in what will appear to be the same graph.

  33..33..99..1100..

  IInnvveerrtt//fflliipp aaxxeess

  Reverse the direction of the X or Y axes or exchange the X and Y axes.

  33..33..99..1111..

  IImmaaggee

  Read and place an X window dump file on the drawing area. At the
  present time, only one image per session is allowed.

  33..33..1100..

  BBlloocckk ddaattaa

  Create sets from block data. Select the type of set and the columns to
  use for each vector  of the new set. Press AAcccceepptt to create the set.
  Note that reading block data does not  affect the scaling of the graph
  so when a set is created using this popup, the set may not  appear
  within the graph's scaling limits - use AS (Autoscale) to set the
  scale of the  graph if needed (or use View/Define world).

  33..33..1111..

  HHoott lliinnkkss

  To be written...

  33..44..  PPlloott ffuunnccttiioonnss

  The selections in the Plot pulldown menu allow the modification of
  plot parameters. There are popups for setting the scaling of the axes,
  the number of tick marks to display, legends, writing annotative text,
  and drawing objects such as lines and boxes.

  xmgr uses 3 coordinate systems in drawing a graph. These are the
  world, viewport, and device coordinate systems (following Foley and
  Van Dam). The world coordinates system is the one in which the data
  are defined and constitutes the user's coordinate system. The viewport
  coordinate system (in xmgr), is a rectangle defined by the points
  (0.0, 0.0) or the lower left corner of the device and (1.0, 1.0) or
  the upper right corner of the device. The pipeline for drawing objects
  on the screen or hardcopy device is a pair of linear transformations
  that carry points in world coordinates to the viewport and then on to
  the device coordinate system. The upshot is that an object located in
  world coordinates can be drawn in various parts of the screen or
  hardcopy device depending on the scaling while an object located in
  viewport coordinates remains in the same spot regardless of the world
  scaling. Strings, lines, boxes, and the graph legend can be located in
  either world or viewport coordinates.

  33..44..11..

  WWoorrlldd ssccaalliinngg

  Define the world coordinate system by filling in the items Xmin, Xmax,
  Ymin, and Ymax. The plot is drawn in world coordinates in a rectangle
  described by the two points (Xmin, Ymin), (Xmax, Ymax). The input is
  scanned for arithmetic expressions so setting Xmin = -PI and Xmax = PI
  is legal input (see the section on transformations for a description
  of the syntax and available functions). The tick spacing can also be
  set in this popup by filling in the items for the major and minor
  spacing for each axis. `Update world/ticks' is used, when,
  occasionally, the state of the items used to define the world scaling
  get out of sync with what is actually used to draw the graph, clicking
  on this item synchronizes the internal values with the displayed
  values. Press the button marked AAcccceepptt to inform xmgr of the changes.

  Note: make sure Xmin < Xmax and Ymin < Ymax.

  33..44..22..

  VViieewwppoorrtt

  Define the viewport by filling in the items Xmin, Xmax, Ymin, Ymax.
  Viewport coordinates run from (0.0,0.0), the lower left corner of the
  screen or hardcopy device, to (1.0,1.0), the upper right corner of the
  screen or hardcopy device. Press the button marked AAcccceepptt to make the
  change to the new viewport. Press the PPiicckk vviieeww button to use the
  mouse to define the viewport. Take the mouse to the lower left corner
  of the desired viewport and press the left button (there is no need to
  hold the button down). A rubberband box will show you the current size
  of the viewport you may select. When you are satisfied with the view,
  press the left mouse button again to activate the new viewport.

  Press the button marked CClloossee to close the VViieewwppoorrtt popup.

  The viewport can also be changed by double clicking on the focus
  markers (or where they would be placed if not shown). The new location
  is chosen by clicking the first mouse button.

  33..44..33..

  AAuuttoossccaallee

  Use the Autoscale popup to set parameters associated with autoscaling.
  Select the axis to scale, or none. Selecting none allows the autoscale
  type and the number of ticks to create to be set but no autoscaling is
  done.  Select the particular set to use or All. The Autoscale type
  sets the method of autoscaling, either Heckbert or fixed. Heckbert
  uses a method based on routines posted to the net by Paul Heckbert and
  generates nice looking tick spacing, but alters the scaling of the
  axes. The fixed option uses the minimum and maximum values in the set
  (or over all sets) to set the scale of the axes. Select the number of
  tick marks to use for defining the tickmark spacing (in the case of
  Heckbert scaling, these settings are advisory only). The item labeled
  AAppppllyy ttoo:: allows the autoscaling of the current graph, or all active
  graphs.

  33..44..44..

  TTiittllee//ssuubbttiittllee

  The title and subtitle are strings that appear centered at the top of
  the plot.  Fill in the items indicated and press the button marked
  AAcccceepptt. To change the font, color, or character size used for titles
  use the items from the popup denoted PPrrooppss.......

  33..44..55..

  TTiicckkss//ttiicckk llaabbeellss

  Set the spacing and type of major and minor tick marks, definition of
  axes labels, and toggle features associated with the drawing of the
  graph axes.

  The top item, EEddiitt, selects the axis for which the feature selections
  will apply. There are two axes defined for each co-ordinate direction,
  the primary axis and the zero axis. The primary axis will be used the
  most, the zero axis is, by default, turned off. The button to the
  right of the EEddiitt item labelled PPrrooppss...... allows the axis to be offset
  by a specified amount in viewport co-ordinates. The item AAxxiiss llaabbeell
  accepts the definition of the label to be used when drawing the axis.
  Various properties of the label may be set in the popup just below
  labeled AAxxiiss llaabbeell pprrooppss.......

  The two items `Major tick spacing' and `Minor tick spacing' set the
  spacing of major and minor ticks. Tick labels are drawn based on the
  setting for the major tick spacing. These items are duplicated in the
  `Define world' popup described previously. Fill in the appropriate
  blanks and press AAcccceepptt to refresh the display. The units are positive
  deltas starting with the world minimums. Input is run through the
  scanner so expressions are allowed. The are special symbols ddxx and ddyy
  for setting a prescribed number of tick marks. Dx is the distance
  along the X-axis and dy is the distance along the Y-axis, as defined
  in the current window of the world coordinate system. Typing at MMaajjoorr
  ttiicckk ssppaacciinngg "dx/10" will give 10 major tickmarks.

  Tick labels, tick marks, the axis bar, may be toggled by the check
  boxes.  Properties for each of these can be set by the PPrrooppss...... popups
  associated with each item.

  Properties for tick labels are:

     FFoonntt
        " Which font to use when drawing the labels.
     CCoolloorr
        " Which color to use.

     LLiinnee wwiiddtthh
        " Width of line to use when drawing the label.

     CChhaarr ssiizzee
        " Size of characters to use.

     FFoorrmmaatt
        " Decimal, exponential, power, general plus several time and
        date formats.  To use the time and date formats, the data are
        required to be in Julian Date format, the long version. Two
        auxillary programs, jul2greg and greg2jul, are available with
        the distribution to assist in the conversion from Julian to
        Gregorian date formats.

     SSttaaggggeerr
        " each tick label may be offset with respect to its neighbor,
        the levels of staggering ranging from 0 to 3, This is especially
        useful with some of the time and date formats.

     PPrreecciissiioonn
        " sets the number of places to display to the right of the
        decimal point for the labels.

     SSkkiipp eevveerryy
        " tick labels are drawn at every major tick mark, use the skip
        factor to circumvent this.

     SSttaarrtt llaabbeellss aatt
        " Graph minimum, or specified. To start the labels at some other
        point than the graph minimum, fill in the text item to the
        immediate right with the value where tick labels are to begin.
        There is a similar item in the property sheet for tick marks
        that can be used to set where the major tick marks begin.
        between these two, there should be sufficient flexibility.

     SSttoopp llaabbeellss aatt
        " same as above only works at the other end of the axis.

     LLaayyoouutt
        " allows the tick labels to be drawn horizontally, vertically,
        or a specified angle (in degrees).

     DDrraaww ttiicckk llaabbeellss
        " which side of the graph to draw tick labels, either the normal
        side (the bottom of the graph in the case of the X-axis, or to
        the left of the graph in the case of the Y-axis), The opposite
        side, or both. This can be handy when using multiple axes, or
        overlaying graphs with differing scales.

     SSiiggnn
        " allows the numerical value of the label to be displayed as is,
        as its absolute value, or negated. This can be used to
        effectively reverse the sense of the axis (negate), or reflect
        the axis about zero (absolute value).

     AAppppllyy ttoo
        " Override the selected axis from the Ticks/tick label popup,
        causing the settings to be selected for all axes in the current
        graph, the current axis for all graphs, or all axes in all
        graphs.

  Press the button AAcccceepptt when everything is OK, or CClloossee to close the
  popup.

  Properties for tick marks are:

     TTiicckk mmaarrkk ddiirreeccttiioonn
        " in, out, or both. Which direction the ticks point.

     TTiicckk mmaarrkkss oonn
        " Which side of the graph to draw ticks. The normal side is the
        bottom of the graph in the case of the X-axis, or to the left of
        the graph in the case of the Y-axis, the default is to draw
        ticks on both sides.

     MMaajjoorr ttiicckk lleennggtthh
        " sets the length of major tick marks

     MMiinnoorr ttiicckk lleennggtthh
        " sets the length of minor tick marks

     MMaajjoorr ggrriidd lliinneess
        " a check box that when toggled on, grid lines will be drawn at
        the settings for major tick marks.

     MMiinnoorr ggrriidd lliinneess
        " a check box that when toggled on, grid lines will be drawn at
        the settings for minor tick marks.

     CCoolloorr,, lliinnee wwiiddtthh,, aanndd lliinnee ssttyyllee
        " These items set the characteristics of the lines use to draw
        ticks and grid lines.

     AAppppllyy ttoo
        " allows the axis select in the Ticks/tick label popup to be
        overidden, causing the settings to be selected for all axes in
        the current graph, the current axis for all graphs, or all axes
        in all graphs.

        Press the button AAcccceepptt when everything is OK, or CCaanncceell to
        close the popup.

        Properties for the axis bar are:

        Color, line width, and line style items set the characteristics
        of the lines use to draw ticks and grid lines.

  Press the button `Accept' when everything is OK, or `Cancel' to close
  the popup.

  IIMMPPOORRTTAANNTT NNOOTTEE FFOORR LLOOGG PPLLOOTTSS:: When log scaling is selected for a
  particular axis or axes, the meaning of major and minor ticks changes
  slightly. Major ticks should be set to integer values. Use minor ticks
  to set the number of interdecade tickmarks, these should be set to
  integer values ranging from 0 (no interdecade tickmarks) to 5.  A
  value of 1 will draw each interdecade position, 2 will skip every
  other position, etc.

  33..44..66..

  FFrraammee

  The frame is the box drawn around the clipping region of the graph,
  and the region inside. Items in the frame popup are:

     FFrraammee
        " Turn the frame on or off.

     SSttyyllee
        " Either `closed' or `open.

     CCoolloorr
        " Set the color of the line drawn around the graph.

     LLiinnee wwiiddtthh
        " Set the width of the line around the graph.

     LLiinnee ssttyyllee
        " Set the line style of the line.

     FFiillll ggrraapphh bbaacckkggrroouunndd
        " Toggle the filling of the frame.

     BBaacckkggrroouunndd ccoolloorr
        " The color with which to fill the frame.

  Press AAcccceepptt to register the settings, CClloossee to close the popup.

  33..44..77..

  SSyymmbboollss

  The items in the symbols popup allow the selection of symbols, lines,
  and fill style to be used when drawing a set.

  Items in the symbols popup are:

     SSeelleecctt sseett
        " The set or sets to which the following items will apply.
        Mulitple selections may be activated.

        SSyymmbbooll::

     SSyymmbbooll
        Select the symbol to use, or none for no symbol.

     FFiillll
        Select the fill option, none, filled, or opaque. The opaque
        option allows the symbol to be filled with the background color
        (white as of this writing) overwriting the line used to connect
        each point.

      SSiizzee
        Set the size of the symbol.

      CChhaarr
        select a character to use instead of a symbol (not active)

      SSkkiipp
        select the number of points to skip when drawing symbols

        LLiinnee::

      SSttyyllee
        select the line style for the lines connecting the points in the
        set.

      WWiiddtthh
        select the line width for the lines.

      CCoolloorr
        the color to use when drawing lines.

        FFiillll::

      FFiillll
        select the type of fill, none, as polygon, to y=0.0, x=0.0,
        x=graph Xmin, x=graph Xmax, y=graph Ymin, y=graph Ymax.

      FFiillll uussiinngg
        either Color or Pattern.

      CCoolloorr
        select the color to use, or none.

      PPaatttteerrnn
        select the pattern to use or none There are three additional
        buttons in this popup that can be used to set the colors,
        symbols, and line widths in an incremental fashion, avoiding the
        need to specify a each.

        MMiisscc::

      LLeeggeenndd
        A string defining the legend to use for this set

      SSeelleecctt
        Allow single or multiple choices in SSeelleecctt sseett

      AAllll ccoolloorrss
        Assign a different color to each set

      AAllll ssyymmbboollss
        Assign different symbols to each set

      AAllll wwiiddtthhss
        Cyclically Assign different line widths to each set

      AAllll lliinnee ssttyylleess
        Cyclically assign different line styles to each set

      BB//WW
        Make all line colors black

        MMiisscc::

      LLeeggeenndd
        A string defining the legend to use for this set

      SSeelleecctt
        Allow single or multiple choices in SSeelleecctt sseett

      AAllll ccoolloorrss
        Assign a different color to each set

      AAllll ssyymmbboollss
        Assign different symbols to each set

      AAllll wwiiddtthhss
        Cyclically Assign different line widths to each set

      AAllll lliinnee ssttyylleess
        Cyclically assign different line styles to each set

      BB//WW
        Make all line colors black

        NNOOTTEE:: TThheerree aarree lliimmiittss oonn hhooww llaarrggee aa sseett ccaann bbee ffoorr tthhee ffiillll ttoo
        ooppeerraattee ccoorrrreeccttllyy.. TThhee lliimmiitt ffoorr tthhee ddiissppllaayy iiss aapppprrooxxiimmaatteellyy
        88000000 ppooiinnttss,, ffoorr tthhee hhaarrddccooppyy ddrriivveerrss,, tthhiiss lliimmiitt ddrrooppss ttoo
        aarroouunndd 880000--11000000..

  Symbols descriptions:

  +o  1.     No symbol

  +o  2.     Dot

  +o  3.     Circle

  +o  4.     Square

  +o  5.     Diamond

  +o  6.     Triangle up

  +o  7.     Triangle left

  +o  8.     Triangle down

  +o  9.     Triangle right

  +o  10. Plus

  +o  11. X

  +o  12. Star

  +o  13. Impulse at X

  +o  14. Impulse at Y

  +o  15. Vertical line at X

  +o  16. Horizontal line at Y

  +o  17. Histogram X

  +o  18. Histogram Y

  +o  19. Stair step X

  +o  20. Stair step Y

  +o  21. Bar X

  +o  22. Bar Y

  +o  23. Range

  +o  24. Location

  +o  25. Set #

  +o  26. Set #, location

  +o  27. Bar and whisker (not active as of this writing)

  +o  28. Segments

  +o  29. Character

  +o  30. String (not active as of this writing)

  +o  31. Hi low X

  +o  32. Hi low Y

  +o  33. Open/close X

  +o  34. Open/close Y

  NOTE: symbols 16-29 do not appear in the legends

  33..44..88..

  EErrrroorr bbaarrss

  Error bars are created by reading in the data as a set with error bars
  (see Files above).  Properties of error bars are set by opening the
  `Error bar props' popup.

     SSiizzee
        Set the length of the error bar.

      LLiinnee wwiiddtthh
        Set the line width of the error bar.

      LLiinnee ssttyyllee
        Set the line style of the error bar.

      RRiisseerr
        Toggle the display of the line connecting the error bar with the
        data point.

      RRiisseerr lliinnee wwiiddtthh
        Set the width of the riser.

      RRiisseerr lliinnee ssttyyllee
        Set the riser line style.

      DDiissppllaayy
        Toggle the display of the error bar.

  33..44..99..

  LLeeggeennddss

  Legend items:

     LLeeggeenndd oonn//ooffff
        toggle the display of the graph legend

     LLeeggeenndd llooccaattiioonn ttyyppee
        Select the coordinate system to use when interpreting the legend
        x, and legend y items described below. Either the world or
        viewport coordinates.  Legends placed in viewport coordinates
        make the legends stay put as the plot scale changes. Legends
        placed in world co-ordiantes will float as the graph scaling is

        changed.

      LLeeggeenndd ggaapp
        specify the vertical gap between legend entries

      LLeeggeenndd lleennggtthh
        specify how long the line representing the set should be.

      LLeeggeenndd XX
        X value of legend location

      LLeeggeenndd YY
        Y value of legend location

      FFoonntt
        specify the font for the legend labels

      FFrraammee
        toggle a box drawn around the legend. The three items below set
        the line color, line width, and line style of the box.

      FFiillll ffrraammee
        toggle the fill of the box around the legend. The frame fill
        will obliterate anything beneath, grid lines, sets, etc. Set the
        type of fill either color or pattern and the corresponding color
        or pattern.

  Clicking PPllaaccee is a convenient method of placing the legend on the
  canvas. After pressing this button, move the mouse pointer to the
  desired location and press again with the left button. The location
  will be in world or viewport coordinates as selected above.

  Press LLooaadd ccoommmmeennttss to make the set comment (generally the file name
  from where the set originated) the legend label. This affects all
  active sets in the current graph.

     PPrreessss
        EEddiitt...... to edit legend labels.

     +o  To edit a label, click on the desired set and enter the label in
        the LLaabbeell area.  Press return to enter the change in the set
        list and then press AAcccceepptt to apply it to the graph.

     +o  PPllaaccee allows one to specify the location of the legend using the
        mouse as above.

     +o  LLooaadd ccoommmmeennttss will make the set comments the legend labels.

     +o  SSttrriipp llaabbeellss will remove the leading component of a pathname and
        leave only the basename.

  Press the button marked AAcccceepptt to register the legend settings.

  Press the button marked CClloossee to close the popup.

  33..44..1100..

  SSttrriinnggss && TThhiinnggss

  The numbers of strings, lines, boxes and ellipses are fixed, open
  Help/About to see what the limits are for your version of xmgr.

      TToo ddeeffiinnee aa tteexxtt ssttrriinngg ttoo bbee ddrraawwnn oonn
        the canvas:" Select font, pen, justification, rotation (in
        integer degrees [0,360]),  size.  Press the button marked "Text"
        to activate the text writing routines.  Move the mouse to the
        canvas and press the left mouse button at the desired  location
        and type away.  It is possible to use

        control codes  <fonts.html> to change fonts within the string.
        Press <return> to advance to the next line - the right mouse
        button to stop.  Each line of text is a separate object.  The
        text cursor does not behave properly for rotated strings. To
        redefine string parameters you'll need to press the right button
        to leave text mode - adjust the parameters and press "Text"
        again to inform xmgr of the changes and resume writing.  See
        below for an explanation  of world/viewport positioning.

        To click on a text string, the cursor must be placed near the
        origin of the text string.  The origin will be the lower left
        corner of the string for left justified strings, the right side
        for right justified strings and in the center for center

        justification.

        NOTE: It is necessary to press <return> to register the string.

      EEddiitt ssttrriinngg
        Click on the string you want to edit. A cursor will appear at
        the end of the string which may be moved using the left and
        right arrow keys.  Anything typed will be inserted at the cursor
        and backspacing will delete the character before the cursor. In
        addition, the following control characters have special
        meanings:

        ^a - Move editing cursor to beginning of string

        ^e - Move editing cursor to end of string

        ^u - Delete beginning of string to cursor

        ^k - Delete to end of string

      TToo ddeeffiinnee aa lliinnee,, bbooxx oorr eelllliippssee ttoo bbee ddrraawwnn oonn tthhee ccaannvvaass::
        Set the properties of the object you want to draw by slecting
        box/line/ellipse props...

        The cycle "Position in: World | viewport coordinates" allows the
        object position to be defined in the world coordinate system or
        viewport coordinates. In World coordinates, the object position
        and aspect ratio on the display change as the plot is re-scaled.
        Specifying the object in viewport coordinates will force the
        object to remain in the same place and retain the same aspect
        ratio as the plot scale is changed.

        When the cursor turns to crosshairs, the two points defining the
        object may be specified. A line is defined by its end points
        while a box is defined by its opposing corners.  An ellipse is
        defined by the opposing corners of the rectangle enclosing it.

     SSeelleeccttiinngg aann oobbjjeecctt
        For the following three operations, one must select an object.
        This is performed by clicking the left mouse button near one of
        the defining points of an object. Only objects associated with
        the current graph will be selected. Objects are associated with
        the graph that was active at the time of their creation.  The
        defining points of objects are given below

      bbooxx
        corners

      eelllliippsseess
        corners of bounding box

      lliinnee
        end points

      tteexxtt
        origin (justification dependent)

      MMoovvee oobbjjeecctt::
        To move a line, box, ellipse or string:

        Press the button marked "Move", this should change the cursor to
        the "move" cursor.

        Select the object to be moved. The object will now be drawn with
        the first point used to define the object under the cursor.

        Move the cursor to the new location and press the left mouse
        button.

      DDeelleettee oobbjjeecctt::
        Press the button marked "Delete", this should change the cursor
        to a bullseye cursor.

        Select the object to be deleted.

      EEddiitt oobbjjeecctt::
        Click on edit and then select an object.

        The attributes of an object may be changed after it has been
        defined by clicking on the object.  Editing may be used to
        redefine a line, box, ellipse or string.

        The WWoorrlldd<<-->>VViieeww button is used to interchange between world and
        viewport specification of object placement.  The object will
        remain at the same spot when converted from one coordinate
        system to the other.

     NNOOTTEE::
        The right mouse button cancels all operations (true throughout
        xmgr with respect to mouse operations).

  33..44..1111..

  TTiimmee ssttaammpp

  Set the display of a string containing the current time. This string
  is updated each time the graph is redrawn.

  33..55..  OOppttiioonnss

  33..55..11..  PPaaggee

  Set the dimensions of the drawing area. Presently, there is no
  connection between the hardcopy drivers and these settings. This means
  that the printer needs to be set to conform to the dimensions of the
  drawing area if WYSIWYG is required.

        FFrreeee

        Allow the drawing area to be resized to fit the main xmgr window
        (no scrollbars will appear).

        LLaannddssccaappee

        Set the drawing area dimensions to landscape, generally this
        will be larger than the window allocated for xmgr, and scroll
        bars will appear.

        PPoorrttrraaiitt

        Set the drawing area dimensions to portrait, generally this will
        be larger than the window allocated for xmgr, and scroll bars
        will appear.

        FFiixxeedd

        Set the drawing area dimensions to a specified number of pixels,
        if the drawing area is larger than the xmgr window, then
        scollbars will appear.

        SSiizzee......

        Open a popup that allows the dimensions of the drawing area to
        be set to a specified number of pixels in both directions, this
        only appies when the drawing area orientation is set to FFiixxeedd.

  33..55..22..  VViieeww

  Set the display of the status bar, tool bar, locator bar, and
  properties associated with the display of the pointer position in the
  Locator bar.

  +o  Status bar

     Toggle the visibility of the Status bar that appears at the bottom
     of the display.

  +o  Tool bar

     Toggle the visibility of the Tool bar at the left of the display.

  +o  Locator bar

     Toggle the visibility of the Locator bar, at the top of the
     display.

  +o  Set fixed point

     Select this item, then click on the drawing area to set the
     posistion of the fixed point. To set the position more precisely,
     use the Locator props popup described below.  When the fixed point
     is set, and the display format is (DX, DY), (DIST), or (R, Theta)
     then give the location relative to the fixed point.

  +o  Clear fixed point

     Set the fixed point to (0.0, 0.0).

  +o  Locator props

  Set properties associated with the display of the pointer position in
  the locator bar.

  The choice item at the top of the popup, LLooccaattoorr:: OONN//OOFFFF toggles the
  continuous update of the pointer as it moves across the drawing area.
  LLooccaattoorr ddiissppllaayy ttyyppee is a choice item the sets the display of the
  position. There are several options:

  +o  [[XX,,YY]] The default, display the position in the coordinate system of
     the current graph.

  +o  [[DDXX,, DDYY]] Display the delta in X and Y of the position of the mouse
     relative to the fixed point, or (0, 0) if no fixed point has been
     selected.  The position is given relative to the scaling of the
     current graph.  DX = (CX - FX) and DY = (CY - FY).

  +o  [[DDiissttaannccee]] Display the position of the mouse as the distance from
     the fixed point, or (0, 0) if no fixed point has been selected. The
     distance is computed as SQRT((FX - CX)^2 + (FY - CY)^2) where (FX,
     FY) are the coordinates of the fixed point, and (CX, CY) is the
     posisiotn of the pointer.

  +o  [[RR,, TThheettaa]] Display the position of the mouse in polar coordinates
     (R, Theta) relative to the fixed point, or (0, 0) if no fixed point
     has been selected. R = SQRT((FX - CX)^2 + (FY - CY)^2)  and Theta =
     ATAN2(DY, DX).

  +o  [[VVXX,, VVYY]] Display the position of the mouse in viewport coordinates.
     This position is independant of the scaling of the current graph.

  +o  [[SSXX,, SSYY]] Display the position of the mouse in screen coordinates.
     This position is independant of the scaling of the current graph.

  The next two categories in the popup set the format and fixed point
  positions for each coordinate direction and, as they are identical,
  only setting the format and position of X is described here. The
  description for Y is identical save that ordinate is replaced by
  abscissa.

  FFoorrmmaatt XX:: is a choice item selecting the format of the display of the
  X position of the pointer. There are several selections here:

  +o  Decimal

  +o  Exponential

  +o  Power (displayed as Decimal)

  +o  General

  +o  DD-MM-YY

  +o  MM-DD-YY

  +o  MM-YY

  +o  MM-DD

  +o  Month-DD

  +o  DD-Month

  +o  Month (abrev.)

  +o  Month

  +o  Day of week (abrev.)

  +o  Day of week

  +o  Day of year

  +o  HH:MM:SS.s

  +o  MM-DD HH:MM:SS.s

  +o  MM-DD-YY HH:MM:SS.s

  +o  Degrees (lon)

  +o  DD MM' (lon)

  +o  DD MM' SS.s (lon)

  +o  MM' SS.s (lon)

  +o  Degrees (lat)

  +o  DD MM' (lat)

  +o  DD MM' SS.s (lat)

  +o  MM' SS.s (lat)

  The Date format requires that the axis be scaled with respect to the
  long form of the Julian date. The Degrees format is for latitude and
  longitude. Below the equator latitudes are negative. Longitude is
  assumed positive east of Greenwich and negative to the west.

  PPrreecciissiioonn XX:: sets the number of places to display to the right of the
  decimal point.

  FFiixxeedd ppooiinntt XX:: defines the position of the ordinate of the Locator
  fixed point.

  If everything looks OK, click on AAcccceepptt to register the selections,
  RReesseett to restore the startup values, and CClloossee to close the popup.

  33..55..33..

  DDrraaww ooppttiioonnss

  Set the amount of scrolling, linked scrolling (scrolling the current
  graph scrolls all graphs), automatic redraw, and whether the screen is
  erased before refreshing the screen.

  33..55..44..

  WWoorrkkiinngg ddiirreeccttoorryy

  Set the working directory. Any file selection popup will start in the
  selected directory.

  33..55..55..

  MMiisscc..

  +o  Debug level: Set the debug level.

  +o  Verify Pick sets operations: If on, when using Pick ops, Set the
     debug level.

  +o  Allow double clicks on canvas: If on, double clicks on the drawing
     area are meaningful.

  +o  Allow autoscale on read: When a read is performed, autoscale the
     current graph.

  DD..  CCoommmmaanndd iinntteerrpprreetteerr rreeffeerreennccee aanndd ppaarraammeetteerr ffiillee ffoorrmmaatt

  DD..11..

  IInnttrroodduuccttiioonn

  xmgr provides a command line interface and the ability to save plot
  parameters in a file for later retrieval. The syntax for the command
  line interpreter and parameter files is the same. It is instructive to
  read a parameter file into the command line interpreter and press the
  `Replay' button to verify this feature.

  DD..22..

  RReeffeerreennccee

  Case is ignored by the command line interpreter.

  Description of parameters:

        _c_o_l_o_r integer value from 0 to 29.

        _s_t_r_i_n_g double quote enclosed character string.

        _i_n_t_e_g_e_r any integer >= 0

        _n_u_m_b_e_r any floating point value >= 0.0

        _e_x_p_r any expression (includes negative floating point values)

        _o_n_o_f_f ON or OFF

        _t_o_r_f TRUE or FALSE

        _s_e_t_n_u_m Set descriptor in the form Sn where n is the number of
        the set.

        _g_r_a_p_h_n_o Graph descriptor in the form Gn where n is the number of
        the graph.

        _d_i_r_e_c_t_i_o_n One of UP, DOWN, LEFT, RIGHT, IN, OUT.

        _o_p_c_h_o_i_c_e One of TOP, BOTTOM, LEFT, or RIGHT.

        _f_o_r_m_a_t_c_h_o_i_c_e One of:

     +o  DECIMAL - 0.0

     +o  EXPONENTIAL - 0e+-0

     +o  POWER - 1010

     +o  GENERAL - varies between 0.0 and 0e+0

     +o  DDMMYY - requires data in Julian date format

     +o  MMDDYY - requires data in Julian date format

     +o  MMYY - requires data in Julian date format

     +o  MMDD - requires data in Julian date format

     +o  MONTHDAY - requires data in Julian date format

     +o  DAYMONTH - requires data in Julian date format

     +o  MONTHS - requires data in Julian date format

     +o  MONTHL - requires data in Julian date format

     +o  DAYOFWEEKS - requires data in Julian date format

     +o  DAYOFWEEKL - requires data in Julian date format

     +o  DAYOFYEAR - requires data in Julian date format

     +o  HMS - requires data in Degrees format

     +o  MMDDHMS - requires data in Degrees format

     +o  MMDDYYHMS - requires data in Degrees format

     +o  DEGREESLON - requires data in Degrees format

     +o  DEGREESMMLON - requires data in Degrees format

     +o  DEGREESMMSSLON  - requires data in Degrees format

     +o  MMSSLON - requires data in Degrees format

     +o  DEGREESLAT - requires data in Degrees format

     +o  DEGREESMMLAT - requires data in Degrees format

     +o  DEGREESMMSSLAT - requires data in Degrees format

     +o  MMSSLAT - requires data in Degrees format

        The JJuulliiaann ddaattee ffoorrmmaatt is the long form. There are 2 programs in
        the subdirectory aux/ that can be used to convert data from
        Gregorian to Julian and vice versa.  The DDeeggrreeeess ffoorrmmaatt is for
        latitude and longitude. Below the equator latitudes are
        negative. Longitude is assumed positive east of Greenwich and
        negative to the west.

  DD..33..

  EEXXIITT

  Abruptly leave xmgr.

  DD..44..

  DDeevviicceess

  In the discussion to follow, printer refers to one of:

  +o  PSMONOP - PostScript portrait.

  +o  PSMONOL - PostScript landscape

  +o  MIFP - Maker Interchange Format portrait.

  +o  MIFL - Maker Interchange Format landscape.

  +o  HPGLP - HPGL portrait.

  +o  HPGLL - HPGL landscape.

  +o  FILE - print to a file rather than to the device.

  +o  HARDCOPY - the current hardcopy device.

  +o  PRINT _p_r_i_n_t_e_r _s_t_r_i_n_g

     Set the printer command string to string.

     Example:

     print psmonop "lpr -Pps"

  +o  PRINT TO HARDCOPY

     Spool hardcopy output to the printer. This command sets the output
     destination, but does not generate a hardcopy, see the HARDCOPY
     command.

  +o  PRINT TO FILE

     Spool hardcopy output to a file, using the current value of the
     printer file string (see PRINT TO string above). This command sets
     the output destination, but does not generate a hardcopy, see the
     HARDCOPY command.

  +o  PRINT TO FILE string

     Spool hardcopy output to a file named string. This command sets the
     output destination, but does not generate a file, see the HARDCOPY
     command.

     Example:

     print to file "hardcopy.out"

  +o  PRINT TO printer

     Set the hardcopy device to printer.

  +o  HARDCOPY

     Print to the current hardcopy device or file.

  +o  DEVICE integer

     Set the screen device to integer. At the present time 0 (the X
     server) is the only value.

  DD..55..

  DDiissppllaayy

  +o  REDRAW

     Refresh the display.

  +o  AUTO REDRAW onoff

     Toggle the automatic redrawing of the display.

  +o  BACKGROUND COLOR color

     Set the background color of the drawing area.

  +o  CMAP color, integer, integer, integer

     Set the RGB values of a colormap entry. The value of color ranges
     from 2 to 29, The three integer values following the color number
     are values from 0 to 255 and represent red, green, and blue resp.
     Colors 0 and 1 are black and white (reversed if the -rvideo command
     line option was selected), and cannot be changed.  See the
     <usage.html#freeColorsSW>

     ___________________________________________________________________
     -nofreecolors
     ___________________________________________________________________

  command line switch if you have problems with button or background
  colors changing.

  Example:

  To set colormap entry 5, use

  cmap 5, 0, 0, 255

  This sets color 5 to solid blue.

  +o  PAGE direction

     Page left, right, up, down, in. out.

  +o  PAGE integer

     Set the amount of scrolling, and integer value giving the amount of
     scroll in percent of the graph scaling. For example:

     PAGE 100

     would set the amount to scroll left, right, up, down to 100 percent
     of the graph axis scaling.

  +o  PAGE INOUT integer

     Set the amount to increase or decrease the graph scaling when using
     the In/Out buttons on the main panel. An integer value expressing
     the percent to expand or shrink.

  +o  LINK PAGE onoff

     Toggle linked scrolling. Linked scrolling affects the scroll
     buttons on the main panel, when linked scrolling is on, all graphs
     are scrolled simultaneously. Linked scrolling OFF makes scrolling
     affect the current graph only.

  DD..66..

  SSeett ooppeerraattiioonnss

  +o  ACTIVATE setnum number

     Activate a set in the current graph and set the length

  +o  COPY setnum TO setnum

     Copy a set to another set

  +o  COPY graphno.setnum TO graphno.setnum

     Copy a set from a particular graph to a set in another graph

     Example

     copy g0.s0 to g1.s5

  +o  MOVE _s_e_t_n_u_m TO _s_e_t_n_u_m

     Move a set to another set.

     Example

     move s0 to s1

  +o  MOVE _g_r_a_p_h_n_o_._s_e_t_n_u_mTO _g_r_a_p_h_n_o_._s_e_t_n_u_m

     Move a set from a particular graph to a set in another graph

     Example

     move g0.s0 to g1.s5

  +o  KILL setnum

     Kill a set. Plot parameters are set to their default values.

  +o  setnum POINT expr, expr

  +o  graphno.setnum POINT expr, expr

     Add a point to a set, create the set if the set is inactive. The
     first version adds a point to set setnum in the current graph, the
     second adds a point to setnum in the graph graphno.

  DD..77..

  BBlloocckk ddaattaa

  +o  The two block data commands allow block data to be read and sets
     formed from the

     active set of block data.

  +o  READ BLOCK string

     Read a file of block data from file string.

  +o  BLOCK xytype string

     Create a set of type xytype using columns coded in string. String
     describes columns as: "c1:c2:..."

     Where c1, c2, ... are the numbers of the columns to use in the
     construction of the set from the block data.

     Examples:

     Create a set with error bars using x from column 1, y from column 2
     and the errors in column 5:.

     read block "block2.dat"

     block xydy "1:2:5"

     Create an XY type data set from columns 7 and 2.

     block xy "7:2"

  DD..88..

  GGrraapphh ooppeerraattiioonnss

  +o  KILL graphno

     Kill graph graphno.

  +o  KILL GRAPHS

     Kill all graphs and sets, but not annotative text, lines, and
     boxes.

  +o  FLUSH

     Kill all graphs, sets, and annotation.

  DD..99..

  TTrraannssffoorrmmaattiioonnss

  +o  LOAD VAR setnum, expr, expr

     Load a set sequentially

  +o  REGRESS (setnum, number)

     Regress a set where number is the degree of the fit in the range
     1-5.

  +o  DIFFERENCE (setnum, number)

  +o  DIFF (setnum, number)

     Difference a set using the method specified by number.

  +o  0 - forward difference.

  +o  1 - backward difference

  +o  2 - centered difference

  +o  INTEGRATE (setnum)

  +o  INT (setnum)

     Integrate a set using a trapezoid rule.

  +o  XCOR (setno1, setno2, BIASED | UNBIASED, lag)

     Creates a new set in the first available spot with the cross/auto-
     correlation data of sets setno1 and setno2 (for auto-corralation,
     enter the same setnumber twice).  The 'lag' must be a integer, 0 <
     lag < length_of_set1&2 that specifies the maximum shift to use. The
     number of datapoints in the resulting set will therefore be equal
     to 'lag'. See also this <trans.html#xcorr>.

  +o  splinetype(setnum, start, stop, integer)

     Draw a spline. splinetype is one of:

  +o  SPLINE - plain cubic spline

  +o  ASPLINE - Akima spline

  +o  ffttype(setnum, integer)

     Compute a DFT either forward or inverse, using the DFT or FFT.
     ffttype is one of:

  +o  DFT - compute the DFT using the definition.

  +o  FFT - compute the DFT using an FFT.

  +o  INVDFT - compute the inverse DFT.

  +o  INVFFT - compute the inverse using the FFT.

  +o  runtype(setnum, number)

     Compute a running average, standard deviation, median, maximum, or
     minimum.  runtype is one of the following:

  +o  RUNAVG - running average.

  +o  RUNSTD - running standard deviation.

  +o  RUNMED - running median.

  +o  RUNMAX - running maximum.

  +o  RUNMIN - running minimum.

  +o  HISTO(setnum, xmin, binw, integer)

     Compute a histogram using set setnum. Xmin is the minimum value,
     binw the bin width, and the integer is how many bins to create.

  DD..1100..

  AAuuttoossccaalliinngg

  +o  AUTOSCALE

     Autoscale the current graph

  +o  AUTOSCALE setnum

     Autoscale the current graph on a particular set

  +o  AUTOSCALE XAXES

     Autoscale the X-axis and the axis at Y = 0 in the current graph.

  +o  AUTOSCALE YAXES

     Autoscale the Y-axis and the axis at X = 0 in the current graph.

  +o  AUTOSCALE torf

     Suppress autoscaling on startup. Use this command in a data file
     that uses imbedded parameter settings to set the axes scaling.

  DD..1111..

  GGrraapphh ffooccuuss

  +o  FOCUS graphno

     Set the current graph to graphno.

  +o  FOCUS SET

     Focus fixed on the current graph.

  +o  FOCUS onoff

     Turn the drawing of the focus indicators on or off.

  +o  FOCUS FOLLOWS

     Focus follows the pointer.

  +o  FOCUS CLICK

     Set the focus by clicking on a graph.

  DD..1122..

  LLooccaattoorr

  +o  LOCATOR onoff

     Turn the locator on the front panel on or off.

  DD..1133..

  IIOO

  +o  SOURCE sourcetype

     Set the source (disk or pipe) for reading XY data sets.

  +o  READ string

     Read an XY data set.

  +o  READ BATCH string

     Read a batch file.

  +o  READ xytype string

     Read a data set of a particular type.

  +o  READ xytype sourcetype string

     Read a data set of type xytype from source sourcetype.

  +o  GETP string

     Read a parameter file.

  +o  PUTP string

     Write a parameter file.

  DD..1144..

  BBooxxeess

  +o  NOTE: Boxes, used or not, are numbered from 0 to the maximum number
     of boxes.  This is also true of lines and strings.

  +o  WITH BOX

     Get the next available box and make it current. A box needs to be
     current before any of the following commands will apply.

  +o  WITH BOX integer

     Get the box numbered integer and make it the current box

  +o  BOX onoff

     Toggle the display of the current box.

  +o  BOX expr, expr, expr, expr

     Set the location of the box in world or viewport coordinates
     depending on the value of BOX LOCTYPE. The 4 values represent xmin,
     ymin, xmax, ymax respectively.

  +o  BOX LOCTYPE worldview

     Set the location type of the next box created. World or viewport
     coordinates.

  +o  BOX graphno

     If the LOCTYPE is WORLD, set the graph to use.

  +o  BOX LINESTYLE integer

     Set the line style to use for the next box created.

  +o  BOX LINEWIDTH integer

     Set the line width of the next box created.

  +o  BOX COLOR integer

     Set the color to use for the box lines.

  +o  BOX FILL filltype

     Set the type of fill to either COLOR or PATTERN.

  +o  BOX FILL COLOR integer

     Set the color to use to fill the next box created.

  +o  BOX FILL PATTERN integer

     Set the pattern to use for the next box created.

  +o  BOX DEF

     Define the current box using the values set above.

  +o  CLEAR BOX

     Remove all boxes

  DD..1155..

  LLiinneess

  +o  xmgr uses an array of a data type called lines internally to hold
     the definition of lines.  The actual construction of this data type
     is not important, but it is important to note that lines, used or
     not, are numbered from 0 to the maximum number of lines.

  +o  WITH LINE

     Make the next available line the current line.

  +o  WITH LINE integer

     Make line integer the current line.

  +o  LINE onoff

     Toggle the display of the current line.
  +o  LINE expr, expr, expr, expr

     Set the location of the current line created. The four expressions
     represent (X1, Y1), (X2, Y2) respectively.

  +o  LINE LOCTYPE worldview

     Set the location type of the current line created. World or
     viewport coordinates.

  +o  LINE graphno

     If the line LOCTYPE is WORLD, set the graph to use for scaling.

  +o  LINE LINEWIDTH integer

     Set the line width of the current line created.

  +o  LINE LINESTYLE integer

     Set the line style of the current line created.

  +o  LINE COLOR integer

     Set the color of the current line created.

  +o  LINE ARROW integer

     Define a line with or without arrow(s) and where they are located.

  +o  0 - no arrow

  +o  1 - arrow at start of line

  +o  2 - arrow at end of line

  +o  3 - arrow at both ends.

  +o  LINE ARROW SIZE number

     Set the size of the current line's arrowhead.

  +o  LINE DEF

     Define a line using the current set of line settings.

  +o  CLEAR LINE

     Remove all lines.

  DD..1166..

  SSttrriinnggss

  +o  xmgr uses an array of a data type called plotstr internally to hold
     the definition of strings. The actual construction of this data
     type is not important, but it is important to note that strings,
     used or not, are numbered from 0 to the maximum number of strings.

  +o  WITH STRING

     Get the next available string

  +o  WITH STRING integer

     Get the particular string numbered integer.

  +o  STRING onoff

     Toggle the display opf the current string.

  +o  STRING expr, expr

     Location of the string, in world or viewport coordinates depending
     on the value of LOCTYPE.

  +o  STRING LOCTYPE worldview

     Set the location type of the string, either world or viewport
     coordiantes. If the setting is WORLD, then the strings position is
     affected by changes in the axes scaling, if VIEW, then the string
     is fixed to that spot in viewport coordinates.

  +o  STRING graphno

     Set the graph to uses for scaling when the LOCTYPE is WORLD.

  +o  STRING LINEWIDTH integer

     Set the line width of the current string.

  +o  STRING COLOR integer

     Set the color of the current string.

  +o  STRING ROT integer

     Set the rotation of the current string from-360 to 360 in degrees

  +o  STRING FONT integer

     Set the font of the current string.

  +o  STRING JUST integer

     Set the justification for the current string. 0 is left justified,
     1 is right justified, and 2 is centered.
  +o  STRING CHAR SIZE number

     Set the character size of the current string.

  +o  STRING DEF string

     Define the current string using the values set above.

  +o  CLEAR STRING

     Remove all strings

  DD..1177..

  WWoorrlldd

  +o  WORLD xmin, ymin, xmax, ymax

     Set the scaling limits for the current graph.

  +o  WORLD XMIN xmin

  +o  WORLD XMAX xmax

  +o  WORLD YMIN ymin

  +o  WORLD YMAX ymax

  DD..1188..

  WWoorrlldd ssttaacckk

  +o  PUSH

     Push the current graph scaling limits and tick spacing onto the
     graph's world stack.

  +o  POP

     Pop the current graph's world stack and set the new scaling limits
     and tick spacing from the new stack top.

  +o  CYCLE

     Cycle through the current graph's world stack.

  +o  STACK integer

     Set the current graph's scaling limits and tick spacing to the
     value at position integer of the current graph's world stack.

  +o  STACK WORLD expr, expr, expr, expr TICK expr, expr, expr, expr

     Push specific values onto the current graph's world stack -
     primarily for use in paramter files generated by xmgr.

  +o  CLEAR STACK

     Clear the current graph's world stack.

  DD..1199..

  VViieewwppoorrtt

  +o  VIEW xmin, ymin, xmax, ymax

     Set the current graph's viewport (where on the device the graph is
     displayed).

  +o  VIEW XMIN expr

  +o  VIEW XMAX expr

  +o  VIEW YMIN expr

  +o  VIEW YMAX expr

  DD..2200..

  TTiittllee aanndd ssuubbttiittllee

  +o  TITLE string

     Set the graph title.

  +o  TITLE FONT integer

     Set the font for the graph title.

  +o  TITLE SIZE number

     Set the character size for the graph title.

  +o  TITLE COLOR integer

     Set the color for the graph title.

  +o  SUBTITLE string

     Set the graph subtitle.

  +o  SUBTITLE FONT integer

     Set the font for the graph subtitle.

  +o  SUBTITLE SIZE number

     Set the character size for the graph subtitle.

  +o  SUBTITLE COLOR integer

     Set the color for the graph subtitle.

  DD..2211..

  SSeettss

  +o  Setnum, in the following descriptions, refer to the symbolic name
     of each set, i.e., the letter `s' followed by the integer number of
     the set. S0 would refer to set 0, s1 to set 1, etc. The following
     commands for setting set parameters have two prefixes, GRAPHS

     and SETS, that allow the setting to be made for all graphs, all
     sets, or a given set in all graphs. So, to set the line width for
     set 0 to be 3 in all graphs that have a set 0 active, the command
     would be:

     graphs s0 linewidth 3

     Likewise, to set the line width for all sets in the current graph,
     give the command:

     sets linewidth 3

     To set the line width for all sets in all graphs to 3, execute:

     graphs sets linewidth 3

  +o  setnum ON

  +o  setnum IGNORE

     Toggle the active/inactive status of sets. This can be used to
     force xmgr to ignore a set(s), even though data are still attached
     to the set. For example, assuming S0 is an active set:

     S0 ignore

     will allow xmgr to ignore S0 for all purposes, except any operation
     that kills a set.  Autoscaling will ignore this set, etc - in
     effect, S0 is dead. To bring it back to life:

     S0 on

     will reintroduce the set with its data intact. This operation may
     be performed in either Edit/Set operations/De-activate or in the
     File/Status popup.

  +o  setnum TYPE xytype

     Set the type of set setnum to xytype, where xytype is one of xy,
     xydx, xydy, xydxdx, xydydy, xydxdy, xyz, xyr, or xyhilo

  +o  setnum FONT integer

     Set the font to use when the set type is xyz.

  +o  setnum PREC integer

     Set the precision when the set type is xyz.

  +o  setnum FORMAT formatchoice

     Set the format to use when the set type is xyz.

  +o  setnum SYMBOL integer

     Set the symbol for the set.

  +o  setnum SYMBOL SIZE number

     Set the size of the symbol.

  +o  setnum SYMBOL CHAR integer

     Set the character to use when using the symbol type character. The
     value is the decimal representation of the character using the
     ASCII collating sequence.

  +o  setnum LINESTYLE integer

     Set the lines style for the set.

  +o  setnum LINEWIDTH integer

     Set the line width for the set.

  +o  setnum COLOR integer

     Set the color to use to draw the lines and symbol.

  +o  setnum FILL integer

     Set the type of fill for the set.

  +o  setnum FILL WITH COLOR

     Set the type of fill for the set.

  +o  setnum FILL WITH PATTERN

     Set the type of fill for the set.

  +o  setnum FILL COLOR integer

     Set the color for the fill if the fill selected is color.

  +o  setnum FILL PATTERN integer

     Set the color for the fill if the fill selected is color.

  +o  setnum SKIP integer

     Set the number of points to skip before placing a symbol.

  +o  setnum ERRORBAR TYPE opchoice

     Set the the error bar display type. Opchoice is one of RIGHT, LEFT,
     or BOTH if the error bar type is xydx or xydxdx, or TOP, BOTTOM, or
     BOTH if the type is xydy or

     xydydy. The default in either case is BOTH, i.e. display both error
     bars.

  +o  setnum ERRORBAR LENGTH number

     Set the length of the error bar.

  +o  setnum ERRORBAR LINEWIDTH integer

     Set the line width for the error bar.

  +o  setnum ERRORBAR LINESTYLE integer

     Set the linestyle for the error bar.

  +o  setnum ERRORBAR RISER onoff

     Toggle the display of the error bar riser.

  +o  setnum ERRORBAR RISER LINESTYLE integer

     Set the line style for the error bar riser.

  +o  setnum ERRORBAR RISER LINEWIDTH integer

     Set the line width for the error bar riser.

  +o  setnum COMMENT string

     Set the comment string for the set.

  DD..2222..

  LLeeggeenndd

  +o  LEGEND onoff

     Toggle display of the legend.

  +o  LEGEND LOCTYPE worldview

     Position the legend in either world or viewport coordinates.

  +o  LEGEND VGAP integer

     Set the vertical gap between legend entries in characters.

  +o  LEGEND HGAP integer

     Specify the gap between the display of the symbol and the legend
     label in units of characters.

  +o  LEGEND LENGTH integer

     Set the length of the legend in units of characters.

  +o  LEGEND expr, expr

     Set the location of the legend.

  +o  LEGEND X1 expr

     Set the X value of the location.

  +o  LEGEND Y1 expr

     Set the Y value of the legend.

  +o  LEGEND FONT integer

     Set the font to use for the legend labels.

  +o  LEGEND CHAR SIZE number

     Set the size of the characters in the legend label.

  +o  LEGEND LINEWIDTH integer

     Set the line width to use to draw the legend labels.

  +o  LEGEND COLOR integer

     Set the color of the legend labels.

  +o  LEGEND BOX onoff

     Toggle the display of the bounding box for the legend.

  +o  LEGEND BOX FILL onoff

     Toggle the filling of the bounding box for the legend.

  +o  LEGEND BOX LINEWIDTH integer

     Set the line width to use to draw the bound box for the legend.

  +o  LEGEND BOX LINESTYLE integer

     Set the line style to use to draw the bound box for the legend.

  +o  LEGEND BOX COLOR integer

     Set the color of the legend bounding box.

  +o  LEGEND BOX FILL COLOR integer

     Set the color to use for the filled legend bounding box.

  +o  LEGEND BOX FILL PATTERN integer

     Set the pattern to use for the filled legend bounding box.

  +o  LEGEND BOX FILL WITH colpat

     Set the type of fill for the bounding box, either COLOR or PATTERN.

  +o  LEGEND STRING integer string

     Set the legend label for setnum integer.

  DD..2233..

  GGrraapphh ffrraammee

  +o  FRAME onoff

     Toggle the display of the current graph's frame.

  +o  FRAME TYPE number

     Set the type of frame for the current graph:

  +o  0 = rectangle

  +o  1 = Lines along the left and bottom of the graph.

  +o  FRAME LINESTYLE number

     Set the line style of the current graph's frame.

  +o  FRAME LINEWIDTH number

     Set the width of the line for the current graph's frame.

  +o  FRAME COLOR number

     Set the color of the current graph's frame.

  +o  FRAME FILL onoff

     Toggle the fill of the graph frame.

  +o  FRAME BACKGROUND COLOR number

     Set the color to use for filling the current graph's frame.

  DD..2244..

  GGrraapphh aaxxeess

  +o  The are two axes in each coordinate direction. In the case of the X
     coordinate direction, there is one that follows the world scaling,
     one at Y = 0 and another that may be used to display an alternate
     scale. The names used by xmgr to refer to these axes are, XAXIS,
     ZEROXAXIS, respectively. Likewise along Y there is the YAXIS,
     ZEROYAXIS. There are names that can be used to refer to all the
     axes along a coordinate direction or to both directions or to all
     graphs, these being AXES (both coordinate directions, current
     graph), XAXES (along X in the current graph), YAXES (along Y in the
     current graph), and preceeding these with the key word GRAPHS, will
     cause the setting to be made throughout all the active graphs.  In
     the following descriptions, axis refers to the choices described
     above.

  +o  axis onoff

     Toggle the display of the axis or axes referred to by axis.

  +o  axis COLOR integer

     Set the color for the axis or axes specified by axis.

  +o  axis LINEWIDTH integer

     Set the line width for the axis or axes specified by axis.

  +o  axis LINESTYLE integer

     Set the line style for the axis or axes specified by axis.

  +o  axis FONT integer

     Set the font to use for text for the axis or axes specified by
     axis.

  +o  axis CHAR SIZE number

     Set the character size for text for the axis or axes specified by
     axis.

  DD..2255..

  TTiicckk mmaarrkkss

  +o  axis TICK MAJOR onoff

  +o  axis TICK MINOR onoff

  +o  axis TICK MAJOR expr

     Set the tick spacing for major tick marks.

  +o  axis TICK MINOR expr

     Set the spcing for minor tick marks.

  +o  axis TICK OFFSETX number

     Set the amount to offset the axis, in viewport coordinates in the X
     direction.

  +o  axis TICK OFFSETY number

     Set the amount to offset the axis in viewport coordinates in the Y
     direction.

  +o  axis TICK ALT onoff

     Toggle the use of the alternate map for the axis scaling.

  +o  axis TICK MIN number

     Specifiy the minimum value to use for the alternate map.

  +o  axis TICK MAX number

     Specify the maximum value to use for the altermate map.

  +o  axis TICK DEFAULT number

     Set the default number of ticks to use when autoscaling.

  +o  axis TICK inout

     Set the display of tick marks to IN, OUT, or BOTH.

  +o  axis TICK SIZE number

     Set the size of tick marks.

  +o  axis TICK MAJOR SIZE number

     Set the size of major tick marks.

  +o  axis TICK MINOR SIZE number

     Set the size of minor tick marks.

  +o  axis TICK COLOR number

     Set the color to use for tick marks.

  +o  axis TICK MAJOR COLOR number

     Set the color to use for major tick marks.

  +o  axis TICK MINOR COLOR number

     Set the color to use for minor tick marks.

  +o  axis TICK MAJOR LINEWIDTH number

     Set the line width to use for grid lines at major tick marks.

  +o  axis TICK MAJOR LINESTYLE number

     Set the line style to use for grid lines at major tick marks.

  +o  axis TICK MINOR LINEWIDTH number

     Set the line width to use for grid lines at minor tick marks.

  +o  axis TICK MINOR LINESTYLE number

     Set the line width to use for grid lines at minor tick marks.

  +o  axis TICK MAJOR GRID onoff

     Toggle the display of grid lines at major tick marks.

  +o  axis TICK MINOR GRID onoff

     Toggle the display of grid lines at minor tick marks.

  +o  axis TICK OP opchoice

     Set the display of tick marks on the axis to LEFT, RIGHT, or BOTH
     if the axis is in the X direction, or TOP, BOTTOM, or BOTH if the
     axis is in the Y direction. The default is BOTH in either case.

  +o  axis TICK TYPE AUTO

     Use the values for major and minor spacing for draw the tick marks.
     See the next it for tick marks at specified locations.

  +o  axis TICK TYPE SPEC

     Use specified values for drawing tick marks. These values are for
     major tick marks only.

  +o  axis TICK SPEC integer

     Give the number of specified tick marks.

  +o  axis TICK number, expr

     Set the value of specified tick mark number integer to value, expr.

  DD..2266..

  TTiicckk llaabbeellss

  +o  axis TICKLABEL PREC integer

     Set the number of places to the right of the decimal point when
     drawing tick lables.

  +o  axis TICKLABEL FORMAT format

     Set the format to use for drawing tick labels.

  +o  axis TICKLABEL LAYOUT HORIZONTAL

     Set the angle of the axis tick labels to be horizontal.

  +o  axis TICKLABEL LAYOUT VERTICAL

     Set the angle of the axis tick labels to be vertical.

  +o  axis TICKLABEL SPEC

     Specifiy the use of the specified tick label angle.

  +o  axis TICKLABEL ANGLE number

     Specifiy the angle to use for drawing the tick labels in degrees
     from 0 to 360.

  +o  axis TICKLABEL JUST justify

     Sepcifiy the type of justification to use when drawing the tick
     label.

  +o  axis TICKLABEL SKIP integer

     Set the number of major tick marks to skip before drawing a tick
     lablel.

  +o  axis TICKLABEL STAGGER integer

     Set the number of characters to use to offset the tick labels.

  +o  axis TICKLABEL OP opchoice

     Set the side(s) to draw tick labels, LEFT, RIGHT, or BOTH for tick
     labels in the Y direction and TOP, BOTTOM, or BOTH for tick labels
     in the X direction. The default is LEFT for the Y axis tick labels
     and BOTTOM for the X axis tick labels.

  +o  axis TICKLABEL SIGN signchoice

     Set the function to uise on the numeric value used to create the
     tick mark label. One of NORMAL, ABSOLUTE, or NEGATE. The default is
     NORMAL, i.e., no transformation is applied. ABSOLUTE indicates that
     the absolute value of the tick label location is used, NEGATE is
     the negative of the tick mark location. The latter two can be used
     to achieve a reversal of axis or a reflection effect of the axes.
     Of course, the data will need to be transformed also.

  +o  axis TICKLABEL START expr

     Set the value to use to begin drawing tick lables.

  +o  axis TICKLABEL STOP expr

     Set the value to stop drawing tick labels.

  +o  axis TICKLABEL START TYPE SPEC

     Use the specified starting value for drawing tick mark labels.

  +o  axis TICKLABEL STOP TYPE SPEC

     Use the specified stopping value for drawing tick mark labels.

  +o  axis TICKLABEL START TYPE AUTO

     Use the graph minimum to use as the starting point for drawing tick
     labels, this is the default.

  +o  axis TICKLABEL STOP TYPE AUTO

     Use the graph maximum as the stopping point for drawing tick mark
     labels. This is the default.

  +o  axis TICKLABEL VGAP number

  +o  axis TICKLABEL HGAP number

  +o  axis TICKLABEL CHAR SIZE number

     Set the size of characters to use when drawing the tick mark
     labels.

  +o  axis TICKLABEL FONT integer

     Set the font to use when drawing tick mark labels.

  +o  axis TICKLABEL COLOR integer

     Set the color to use for drawing tick mark labels.

  +o  axis TICKLABEL LINEWIDTH integer

     Set the line width to use for drawing tick mark labels.

  +o  axis TICKLABEL TYPE AUTO

     Use the values of major tick marks for position the tick mark
     labels.

  +o  axis TICKLABEL TYPE SPEC

     Specify the tick mark label to use at each major tick mark.

  +o  axis TICKLABEL integer, string Set the value for the integer'th
     tick mark label.

  DD..2277..

  AAxxeess llaabbeell ssttrriinnggss

  +o  axis LABEL string

     Set the text string to use for the axis label.

  +o  axis LABEL LAYOUT PERP

     Set the layout of the axis label to be perpendicular to the axis.

  +o  axis LABEL LAYOUT PARA

     Set the layout of the axis label to be parallel to the axis.

  +o  axis LABEL CHAR SIZE number

     Set the character size of the text used for the axis label.

  +o  axis LABEL FONT integer

     Set the font to use for the axis label.

  +o  axis LABEL COLOR integer

     Set the color to use for the axis label.

  +o  axis LABEL LINEWIDTH integer

     Set the line width to use for drawing the axis label.  Axes bar

  +o  axis BAR onoff

     Toggle the display of the axis bar. The dfault is OFF.

  +o  axis BAR COLOR integer

     Set the color to use for the axis bar.

  +o  axis BAR LINEWIDTH integer

     Set the line width to use when drawing the axis bar.

  +o  axis BAR LINESTYLE integer

     Set the line style to use for drawing the axis bar.

  DD..2288..

  GGrraapphhss

  +o  WITH graphno

     Set the current graph to graphno.

  +o  graphno onoff

     Set graphno on or off.

  +o  graphno AUTOSCALE TYPE AUTO

     Set the method of autoscaling to a type developed by Paul Heckbert.
     This method makes nice tick spacing, but fiddles with scales of the
     axes.

  +o  graphno AUTOSCALE TYPE SPEC

     Set the method of autoscaling to use the minimum and maximum values
     of the data.

  +o  graphno HIDDEN torf

     Toggle the display of graphno.

  +o  graphno TYPE graphtype

     Set the type of graphno to graphtype, where graphtype is one of:

  +o  XY - Linear scaling on both X and Y axes (the default).

  +o  BAR - bar chart.

  +o  STACKEDBAR - stacked bar chart.

  +o  LOGX - logarithmic X axis, linear Y axis.

  +o  LOGY - linear X axis, logarithmic Y axis.

  +o  LOGXY - Log-log graph.

  +o  graphno FIXEDPOINT onoff

     Toggle the use of the graph fixed point, i.e., the point used as a
     reference for the locator display.

  +o  graphno FIXEDPOINT XY number, number

     Set the value of the graph fixed point.

  +o  graphno FIXEDPOINT TYPE number

     Set the type of display for the locator on the main panel.

  +o  graphno FIXEDPOINT FORMAT format format

     Select the format to use for both X and Y in the locator display.

  +o  graphno FIXEDPOINT PREC integer, integer

     Set the number of places to display to the right of the decimal
     point in the locator display for both X and Y.

  EE..  HHoott kkeeyyss

  When the pointer focus is on the canvas (where the graph is drawn),
  there are some shortcuts to activate several actions. They are:

  +o  ^A - autoscale plot

  +o  ^B - draw a box (using the current settings for boxes)

  +o  ^D - delete an object (string, line, or box)

  +o  ^N - move an object (string, line, or box)

  +o  ^P - draw a line (using the current settings for lines)

  +o  ^V - set the viewport with the mouse

  +o  ^W - write a string (using the current settings for strings)

  +o  ^X - exit (abruptly) xmgr.

  +o  ^Z - enable zoom

  FF..  DDoouubbllee cclliicckkss

  When activiated, double clicking on  parts of the canvas will  invoke
  certain popups.

      lleefftt ooff ggrraapphh ffrraammee
        " y axis label/ticks  <plot.html#ticks>

      bbeellooww ggrraapphh ffrraammee
        " x axis label/ticks  <plot.html#ticks>

      oonn ffooccuuss mmaarrkkeerrss
        move selected viewport corner

      wwiitthhiinn ggrraapphh ffrraammee
        " Edit nearest set

        symbols <plot.html#symbols> or Read sets  <file.html#readsets>
        if none active

      rriigghhtt ooff ggrraapphh ffrraammee
        " Legend <plot.html#legends>

      aabboovvee ggrraapphh ffrraammee
        " Titles/subtitles  <plot.html#title>

  This behaviour can be turned on or off in the Options/Misc menu
  <options.html#misc>.

  GG..  FFoonnttss

  To change fonts within a string preceed the font number listed below
  by a backslash. To  turn subscripting or superscripting on or off use
  \s for subscripts and \S for superscripting. Font selection is current
  for the remainder of the string or until the next font change.
  Subscripts and superscripts remain for the remainder of the string or
  until \N is seen. To
  print a backslash use \\. To backspace use \b. To begin underlining
  use \u, to stop underlining use \U. \+ increases the size of the
  characters and \- decreases the size of the characters.

  xmgr uses the Hershey fonts to draw text on the screen, but PostScript
  fonts for hardcopy. There are discrepancies between the two sets of
  fonts and of this writing, there are  problems with the mapping of
  Greek and special characters.

  Font #  Font

  +o  0 .... Complex Roman on screen, maps to Times-Roman.

  +o  1 .... Triplex Roman on screen, maps to Times-Bold.

  +o  2 .... Complex Italic on screen, maps to Times-Italic.

  +o  3 .... Triplex Italic on screen, maps to Times-BoldItalic.

  +o  4 .... Simplex on screen, maps to Helvetica.

  +o  5 .... Duplex on screen, maps to Helvetica-Bold

  +o  6 .... Complex Italic on screen, maps to Helvetica-Oblique.

  +o  7 .... Triplex Italic on screen, maps to Helvetica-BoldOblique.

  +o  8 .... Simplex Greek on screen, maps to the lower 128 characters

     of the Symbol font.

  +o  9 .... Symbols on screen, maps to the upper 128 characters of the
     Symbol font.

  +o  x .... Special symbols

  Summary of other special commands

  +o  + .... increase size

  +o  - .... decrease size

  +o  b .... backspace length of previous character

  +o  c .... begin using upper 128 characters of set

  +o  C .... stop using upper 128 characters of set

  +o  s .... begin subscripting

  +o  S .... begin superscripting

  +o  u .... begin underline

  +o  U .... stop underline

  +o  N .... return to normal

  Example:

  \0F\sX\N(\8e\0) = sin(\8e\0)*e\S(-X)\N*cos(\8e\0)

  prints roughly FX(e) = sin(e)*e -X*cos(e)

  using font 0 and e prints as epsilon from the Simplex Greek font.

  Use the upper 128 characters for accented characters.  The upper
  character set not display on the screen correctly but will print.

  NOTE: Special characters are mapped to the keyboard, the present
  mapping is not very well  organized and may change.

