NAG Library Routine Document

g01asf  (plot_box_whisker)

 Contents

    1  Purpose
    7  Accuracy

1
Purpose

g01asf produces a specified number of box and whisker plots on a character printing device, with a chosen number of character positions in each direction.

2
Specification

Fortran Interface
Subroutine g01asf ( prt, m, n, x, ldx, nstepx, nstepy, plot, ldplot, fivept, iwork, ifail)
Integer, Intent (In):: m, n(m), ldx, nstepx, nstepy, ldplot
Integer, Intent (Inout):: ifail
Integer, Intent (Out):: iwork(ldx)
Real (Kind=nag_wp), Intent (In):: x(ldx,m)
Real (Kind=nag_wp), Intent (Out):: fivept(5*m)
Character (1), Intent (In):: prt
Character (1), Intent (Inout):: plot(ldplot,nstepx)
C Header Interface
#include nagmk26.h
void  g01asf_ ( const char *prt, const Integer *m, const Integer n[], const double x[], const Integer *ldx, const Integer *nstepx, const Integer *nstepy, char plot[], const Integer *ldplot, double fivept[], Integer iwork[], Integer *ifail, const Charlen length_prt, const Charlen length_plot)

3
Description

g01asf produces a series of box and whisker plots representing m data batches each of size ni, for i=1,2,,m. A box and whisker plot is a diagrammatic representation of the five-point summary of a data batch. The plot consists of a box spanning the hinges with the median indicated by a third line and two whiskers to represent the extreme values. The five-point summary is calculated internally and is returned in the workspace array.
The plot is returned in the character array plot. The size of the plot may be controlled using the arguments nstepx and nstepy. Optionally the plot can be output to an external file, in which case output is directed to the current advisory message unit as defined by x04abf.
An axis corresponding to the y axis is drawn and annotated and data points are plotted to the nearest character position.

4
References

Erickson B H and Nosanchuk T A (1985) Understanding Data Open University Press, Milton Keynes
Tukey J W (1977) Exploratory Data Analysis Addison–Wesley

5
Arguments

1:     prt – Character(1)Input
On entry: indicates whether the box and whisker plot is to be output to an external file.
prt='N'
The box and whisker plot is not output to an external file.
prt='P'
The box and whisker plot is output to the current advisory message unit as defined by x04abf.
Constraint: prt='P' or 'N'.
2:     m – IntegerInput
On entry: m, the number of data batches that are to be represented.
Constraint: m>0.
3:     nm – Integer arrayInput
On entry: ni contains the number of observations in the ith batch, ni, for i=1,2,,m.
If ni<5 the ith batch is omitted from the plot.
Constraint: at least one ni must be greater than or equal to 5, for i=1,2,,m.
4:     xldxm – Real (Kind=nag_wp) arrayInput
On entry: the ith column of x must contain the data for the ith batch, that is xji must contain the jth observation of the ith batch, for i=1,2,,m and j=1,2,,ni.
5:     ldx – IntegerInput
On entry: the first dimension of the array x and the dimension of the array iwork as declared in the (sub)program from which g01asf is called.
Constraint: ldxmaxni.
6:     nstepx – IntegerInput
On entry: the number of character positions to be plotted in the x-direction.
Constraint: nstepxmax19,15×m/4+9.
7:     nstepy – IntegerInput
On entry: the number of character positions to be plotted in the y-direction.
Constraint: nstepy9.
8:     plotldplotnstepx – Character(1) arrayOutput
On exit: contains the box and whisker plots.
9:     ldplot – IntegerInput
On entry: the first dimension of the array plot as declared in the (sub)program from which g01asf is called.
Constraint: ldplotnstepy.
10:   fivept5×m – Real (Kind=nag_wp) arrayOutput
On exit: fiveptj, for j=i-1×5+1,,i-1×5+5, contains the five-point summary of the ith batch.
11:   iworkldx – Integer arrayWorkspace
12:   ifail – IntegerInput/Output
On entry: ifail must be set to 0, -1​ or ​1. If you are unfamiliar with this argument you should refer to Section 3.4 in How to Use the NAG Library and its Documentation for details.
For environments where it might be inappropriate to halt program execution when an error is detected, the value -1​ or ​1 is recommended. If the output of error messages is undesirable, then the value 1 is recommended. Otherwise, if you are not familiar with this argument, the recommended value is 0. When the value -1​ or ​1 is used it is essential to test the value of ifail on exit.
On exit: ifail=0 unless the routine detects an error or a warning has been flagged (see Section 6).

6
Error Indicators and Warnings

If on entry ifail=0 or -1, explanatory error messages are output on the current error message unit (as defined by x04aaf).
Errors or warnings detected by the routine:
ifail=1
On entry, at least one element of n<5.
ifail=2
On entry, nstepx=value.
Constraint: nstepx19.
On entry, nstepx=value is too small for value plots.
ifail=3
On entry, nstepy=value.
Constraint: nstepy9.
ifail=4
On entry, ldplot=value and nstepy=value.
Constraint: ldplotnstepy.
ifail=5
On entry, prt=value.
Constraint: prt='P' or 'N'.
ifail=6
On entry, ldx=value.
Constraint: ldxvalue.
ifail=7
On entry, all batches have n<5.
ifail=8
On entry, the data values are all identical.
ifail=-99
An unexpected error has been triggered by this routine. Please contact NAG.
See Section 3.9 in How to Use the NAG Library and its Documentation for further information.
ifail=-399
Your licence key may have expired or may not have been installed correctly.
See Section 3.8 in How to Use the NAG Library and its Documentation for further information.
ifail=-999
Dynamic memory allocation failed.
See Section 3.7 in How to Use the NAG Library and its Documentation for further information.

7
Accuracy

If the range of observations in a particular batch is too small to allow each item of the five-point summary to be plotted separately, then a sequence of stars are plotted at the median point of the batch to indicate that the full box-plot could not be plotted.

8
Parallelism and Performance

g01asf is not threaded in any implementation.

9
Further Comments

The time taken by g01asf increases with m and ni, for i=1,2,,m.

10
Example

The following program produces a box and whisker plot for each one of 5 data batches of sizes 5, 6, 8, 8 and 7 respectively and prints the 5 box and whisker plots on the current advisory message unit.

10.1
Program Text

Program Text (g01asfe.f90)

10.2
Program Data

Program Data (g01asfe.d)

10.3
Program Results

Program Results (g01asfe.r)

© The Numerical Algorithms Group Ltd, Oxford, UK. 2017