          Chapter 4: Plotting Axis Systems and Titles

4.1 Plotting Axis Systems

An  axis system  defines  an area  on the page  for plotting
data.  Various axis systems  can be  plotted  to accommodate
different applications. For two-dimensional graphics, a max-
imum of two parallel  X- and Y-axes  can be drawn.  The axis
system is scaled  to fit the range of data points and can be
labeled with values, names and ticks.  Two-dimensional  axis
systems are plotted with a call to the routine GRAF.

                              G R A F

GRAF plots a two-dimensional axis system.

The call is:  CALL GRAF (XA, XE, XOR, XSTEP, 
                         YA, YE, YOR, YSTEP)         level 1

XA, XE        are the lower and upper limits  of the X-axis.
XOR, XSTEP    are the first  X-axis label  and the  step be-
              tween labels.
YA, YE  are   the lower and upper limits of the Y-axis.
YOR, YSTEP    are the first  Y-axis label  and the  step be-
              tween labels.

Notes:     -  GRAF must be called  in level 1  and automati-
              cally sets the level to 2.  When plotting more
              than  1 axis system  on a page, ENDGRF must be
              called  in between each new set of axes in or-
              der to set the level back to 1.
           -  The position  of the lower left corner and the
              size of an axis system can be changed with the
              routines AXSPOS and AXSLEN.
           -  The axis scaling is linear by default  and can
              be changed with  SCALE.  For logarithmic  sca-
              ling,  the corresponding  parameters  in  GRAF
              must be exponents of base 10.
           -  One of several label types can be chosen  with
              the routine LABELS or user-defined with MYLAB.
              Single  labels  can be  suppressed  by calling
              AXENDS.
           -  The routine NAME defines axis titles.
           -  The number of ticks between axis labels can be
              changed with the routine TICKS.
           -  SETGRF  can be  used  to remove  a piece of or
              complete axis from an axis system.
           -  If the numerical value  of the lower  limit of
              an axis is larger than the upper limit and the
              label step is negative,  axis scaling  will be
              in descending order.
           -  The routine  FRAME  defines the thickness of a
              frame plotted  around an axis system.  A frame
              can also be plotted outside of  GRAF  with the
              statement CALL BOX2D.

4.2 Termination of Axis Systems

                         E N D G R F

The routine  ENDGRF  terminates  an axis system and sets the
level back to 1.

The call is:  CALL ENDGRF                         level 2, 3

4.3 Plotting Titles

                         T I T L E

This routine plots  a title  over an axis system.  The title
may contain up to four lines of text designated with TITLIN.

The call is:  CALL TITLE                          level 2, 3

Note:         All lines  are centred  by default  but can be
              left- or right-justified using TITJUS.

4.4 Plotting Grid Lines

                         G R I D

The routine GRID overlays a grid on an axis system.

The call is:      CALL GRID (IXGRID, IYGRID)      level 2, 3
IXGRID, IYGRID    are the numbers  of grid lines between la-
                  bels.

                         G R D P O L

The routine GRDPOL plots a polar grid.

The call is:      CALL GRDPOL (IXGRID, IYGRID)    level 2, 3

IXGRID            is the numbers of circles between labels.
IYGRID            is the numbers of sector lines between 360
                  degrees.

                         A X G I T

The  routine  AXGIT  plots  vertical  and  horizontal  lines
through X = 0 and Y = 0.
The call is:  CALL AXGIT                          level 2, 3

Note:         The statement  CALL XAXGIT plots only the line
              Y = 0 while CALL YAXGIT plots only X = 0.

                         C R O S S

The routine  CROSS plots vertical  and horizontal lines with
additional ticks through X = 0 and Y = 0.

The call is:  CALL CROSS                          level 2, 3

Note:         The statement  CALL XCROSS plots only the line
              Y = 0 while CALL YCROSS plots only X = 0.

4.5 Secondary Axes

The following routines  plot single  X- and Y-axes; they are
called secondary axes  because they do not define  or change
any of the  axis scaling parameters.  Secondary axes  can be
used to add additional labels to the axis systems.

The plotting routines for secondary axes are:

    XAXIS  plots a linear X-axis.              level 1, 2, 3
    YAXIS  plots a linear Y-axis.              level 1, 2, 3
    XAXLG  plots a logarithmic X-axis.         level 1, 2, 3
    YAXLG  plots a logarithmic Y-axis.         level 1, 2, 3

The call is:  CALL XAXIS (A, B, OR, STEP, NL, CSTR, IT,
                                                     NX, NY)

A, B          are the lower and upper limits of the axis.
OR, S         are the first  label and the step  between la-
              bels.
NL            is the length of the axis in plot coordinates.
CSTR          is a  character  string  containing  the  axis
              name.
IT            indicates how ticks,  labels and the axis name
              are plotted. If IT = 0,  they are plotted in a
              clockwise direction. If IT = 1, they are plot-
              ted  in an  counter-clockwise direction.
NX, NY        are  the  plot  coordinates  of the axis start
              point.  The X-axis  will be plotted  from left
              to right  and the Y-axis from bottom to top.

Analog:       YAXIS, XAXLG, YAXLG

Notes:     -  Secondary axes can be called  from level  1, 2
              or 3.  Note again  that  secondary axes do not
              change  the scaling of  an axis system defined
              by GRAF.  Similarly,  curves cannot be plotted
              with only secondary axes,  they require a call
              to GRAF.
           -  As in GRAF, the parameters of logarithmic axes
              must be exponents of base 10.
           -  User-defined  labels  may also  be plotted  on
              secondary axes  with  MYLAB  and the  argument
              'USER' in the routine LABELS. 
           -  The number of ticks  can be changed by calling
              TICKS.

