FFRAME procedure

Forms multiple windows in a plot-matrix for high-resolution graphics (P.W. Goedhart).


Options

PRINT = strings
Whether to display the layout and numbering of the plot-matrix in a table or in a high-resolution test-graph on the current device (table, testgraph); default *

ARRANGEMENT = string
Type of plot-matrix (rectangle, square, lowersymmetric, uppersymmetric, diagonal); default rectangle

ROWS = scalar
Number of rows of plot-matrix; default 3

COLUMNS = scalar
Number of columns of plot-matrix; default 3

DIAGONALWINDOWS = string
Whether to include or exclude the diagonal in symmetric plot-matrices (include, exclude); default include

SQUARESHAPES = string
Whether to force the individual windows, excluding margins for annotation, to be square (yes, no); default no

NUMBERING = string
Controls the way in which the individual windows are numbered (rowwise, columnwise); default rowwise

DEFINE = string
Whether windows should be defined within the procedure or not (yes, no); default yes

CLEARWINDOW = scalar or variate
Defines the windows for which the screen should be cleared; i.e. specifies the elements of the SCREEN pointer which are set to the single-values text 'clear', other element of SCREEN are set to 'keep'; default 1

RLOWER = scalar
Lowest y device coordinate; default 0

RUPPER = scalar
Highest y device coordinate; default 1

CLOWER = scalar
Lowest x device coordinate; default 0

CUPPER = scalar
Highest x device coordinate; default 1

RSKIP = scalar
Space between windows along the y-axis; default 0

CSKIP = scalar
Space between windows along the x-axis; default 0

MARGIN = strings
Sets the size of the margins for labels and titles (xtitle, ytitle, none, small); default *

YMLOWER = scalar
Size of bottom margin (x-axis labelling) in each window; default *

YMUPPER = scalar
Size of upper margin (overall title) in each window; default *

XMLOWER = scalar
Size of left-hand margin (y-axis labelling) in each window; default *

XMUPPER = scalar
Size of right-hand margin in each window; default *

BACKGROUND = scalar
Specifies the colour to be used for the background in each window (where allowed by the graphics device); default 0


Parameters

NGRAPHS = scalar
To save the number of windows in the plot-matrix

SYLOWER = pointer
Pointer to save scalars with lower y device coordinates for each window

SYUPPER = pointer
Pointer to save scalars with upper y device coordinates for each window

SXLOWER = pointer
Pointer to save scalars with lower x device coordinates for each window

SXUPPER = pointer
Pointer to save scalars with upper x device coordinates for each window

SSCREEN = pointer
Pointer to save single-valued texts with value 'clear' or 'keep'; this depends only on the setting of the CLEARWINDOW option


Description

Procedure FFRAME supplements the FRAME directive with automatic definition of windows in a so-called plot-matrix. The ARRANGEMENT option defines the arrangement of the plot-matrix which can be in either a rectangle, square, lowersymmetric, uppersymmetric or diagonal. The number of rows and columns of the plot-matrix can be specified by options ROWS and COLUMNS. The COLUMNS option is only relevant when ARRANGEMENT=rectangle. The DIAGONALWINDOWS option defines whether or not the diagonal windows should be included for symmetric plot-matrices. The option setting SQUARESHAPES=yes forces each window, excluding margins for annotation, to be square.

   By default the positions of the windows in the plot-matrix are defined within the procedure by means of a FRAME statement using windows 1, 2, ... . The windows are numbered by rows unless the NUMBERING option is set to columnwise. When the number of windows is larger than the maximum allowable number, the windows are not defined and a warning message is printed. In that case the parameters SYLOWER, SYUPPER, SXLOWER and SXUPPER can be used to save the y and x device coordinates of the windows for subsequent use in a FRAME statement. Also, setting DEFINE=no does not define the windows. The NGRAPHS parameter saves the number of windows in the plot-matrix.

   Typically the screen should be cleared only for the first window in a plot-matrix. The SSCREEN parameter can be used to save the single-valued text 'clear' for the first window and 'keep' for all other windows. These texts can then be used to set the SCREEN option of the plot directives as is shown in the example. The CLEARWINDOW option can be employed in case the screen should be cleared for other windows.

   By default the unit plot-square [0,1] x [0,1] is employed. Options RLOWER, RUPPER, CLOWER and CUPPER can be used to define a different plot-square. The RSKIP and CSKIP options can be used to increase the space between windows which is by default 0. The user must ensure that these options are set to sensible values.

   The space used for labelling of axis and an overall title for each window can be controlled with options MARGIN, YMLOWER, YMUPPER, XMLOWER and XMUPPER options. Default values of these options ensure that an overall title and labels (not longer than 4 characters) along both axes are displayed when using the standard character size. However, the default values normally prohibit the display of titles along the axes. The settings xtitle and/or ytitle of the MARGIN option generate space for titles along the axes. The MARGIN option can have the following settings:

MARGIN=*
YMLOW,YMUP,XMLOW,XMUP = 0.04, 0.04, 0.05, 0.01

MARGIN=xtit
YMLOW,YMUP,XMLOW,XMUP = 0.09, 0.04, 0.05, 0.01

MARGIN=ytit
YMLOW,YMUP,XMLOW,XMUP = 0.04, 0.04, 0.10, 0.01

MARGIN=xtit,ytit
YMLOW,YMUP,XMLOW,XMUP = 0.09, 0.04, 0.10, 0.01

MARGIN=none
YMLOW,YMUP,XMLOW,XMUP = 0

MARGIN=small
YMLOW,YMUP,XMLOW,XMUP = 0.015

These values can be overridden by setting options YMLOWER, YMUPPER, XMLOWER, XMUPPER explicitly. The background colour for all windows may be modified by the BACKGROUND option.

   The PRINT option can be used to display the layout and numbering of the plot-matrix in a table or in a high-resolution test-graph on the current device.

 

Options: PRINT, ARRANGEMENT, ROWS, COLUMNS, DIAGONALWINDOWS, SQUARESHAPES, NUMBERING, DEFINE, CLEARWINDOW, RLOWER, RUPPER, CLOWER, CUPPER, RSKIP, CSKIP, MARGIN, YMLOWER, YMUPPER, XMLOWER, XMUPPER, BACKGROUND.

Parameters: NGRAPHS, SYLOWER, SYUPPER, SXLOWER, SXUPPER, SSCREEN.


Method

The relevant part of the calculations for the lower and upper x device coordinates are

CALCULATE xrange = (CUPPER - CLOWER + CSKIP)/COLUMNS - CSKIP

CALCULATE XLOWER = CLOWER + (!(1...#COLUMNS) - 1)\

                   * (xrange + CSKIP)

CALCULATE XUPPER = XLOWER + xrange

The y device coordinates are calculated similarly.


Action with RESTRICT

Restrictions on CLEARWINDOW are ignored.