..-
help for ^loopplot^
..-

Scatter plots with loops
- ------------------------

    ^loopplot^ varlist [weight] [^if^ exp] [^in^ range] [^,^ graph_options]

Description
- -----------

^loopplot^ produces a scatter or twoway plot for varlist, in which
^connect(l)^ has the effect of producing a loop: the last data point is
joined to the first. This is achieved by temporarily appending one or more
extra observations to the data set that copy the first relevant non-missing
observation for each loop.

Options
- -------

graph_options are options allowed with ^graph, twoway^, including ^by()^.
^sort^ is allowed but ignored.

Remarks
- -------

There are some known side-effects of appending extra observations:

    ^sy([_n])^ is marred by overwriting of ^_n^ for the first
    observation and its copy. The correct effect can be achieved by

    . ^gen id = _n^
    . ^loopplot y x, c(l) sy([id])^

    There are various small or large effects on other ^connect^ options.

Suppose there are several variables to be plotted on the y axis. Each
variable should define just one loop. (If any variable specifies more
than one loop, there would be spurious connections between them.)
Suppose we have four loops defined by

    ^y1^ and ^x1^
    ^y2^ and ^x2^
    ^y3^ and ^x3^
    ^y4^ and ^x4^

then to meet the Stata rule that only one variable can be plotted on the
x axis it is necessary to pack the four x variables into one. A
satisfactory data structure to start with is

     ^y1   .   .   .        x1^
      ^.  y2   .   .        x2^
      ^.   .  y3   .        x3^
      ^.   .   .  y4        x4^

stacked into

     ^Y1  Y2  Y3  Y4        X^

Here the ^.^ represent blocks of missing values. This data structure
could be produced by using ^stack^, or by direct entry of the data.

Examples
- --------

 . ^loopplot rain temp, c(l)^
 . ^loopplot rain temp, c(l) by(station)^

Author
- ------

         Nicholas J. Cox, University of Durham, U.K.
         n.j.cox@@durham.ac.uk

Also see
- --------

On-line: help for @graph@
