{smcl}
{* 23nov2004/11apr2014/26apr2014}{...}
{hline}
help for {hi:crossplot}
{hline}
{title:Scatter (or other twoway) plots for each y vs each x variable}
{p 8 17 2}
{cmd:crossplot}
({it:yvarlist})
({it:xvarlist})
[{it:weight}]
[{help if}]
[{help in}]
[
{cmd:,}
{cmd:allobs}
{it:graph_options}
{cmdab:seq:uence(}{it:words_in_sequence}{cmd:)}
{cmd:seqopts(}{it:option}{cmd:)}
{cmd:combine(}{it:combine_options}{cmd:)}
]
{p 8 17 2}
Weights are supported if and as allowed by the {cmd:twoway} plot requested.
{title:Description}
{p 4 4 2}
{cmd:crossplot} produces an array of {help scatter} or other
{help twoway} plots for {it:yvarlist} versus {it:xvarlist}. There is
one plot for each {it:y} variable from {it:yvarlist} and each {it:x}
variable from {it:xvarlist}. The name {cmd:crossplot} is intended to
signal cross-combination. Graphs are drawn individually and then
combined with {help graph combine}.
{title:Remarks}
{p 4 4 2}
The indicated syntax is {cmd:(}{it:yvarlist}{cmd:)}
{cmd:(}{it:xvarlist}{cmd:)}.
{p 4 4 2}
The actual syntax is more indulgent. The first token, a single variable
name or a wildcard varlist or a set of variable names in parentheses
{cmd:()}, is interpreted as {it:yvarlist}. Remaining variable names will
be interpreted as {it:xvarlist}, regardless of any parentheses.
{p 4 4 2}
{it:yvarlist} and {it:xvarlist} are combined using all possible pairs
with one {it:y} and one {it:x}, i.e. as a Cartesian product.
{p 4 4 2}
A neat arrangement of the individual graphs is produced if the number of
{it:y} variables is equal to the number of {it:x} variables, or the
number of {it:y} variables is 1, or the number of {it:x} variables is 1.
Otherwise, use {cmd:combine()} to tune the number of rows or columns in
the table of graphs.
{p 4 4 2}
This is a 2014 revision of {cmd:cpyxplot} (SSC) first made public in 1999.
{p 4 4 2}
Tufte (1983, 1990) remains inspirational on the value of "small
multiples". Heiberger and Holland (2004, 2008) contain enthusiastic
advocacy of Cartesian products in statistical graphics.
{p 4 4 2}
See {cmd:combineplot} (SSC) for a more general command in this
territory.
{title:Options}
{p 4 8 2}
{cmd:allobs} requests plotting of results on each graph for all possible
observations. The default is to show only observations for which all
{it:y} and all {it:x} variables are non-missing.
{p 4 8 2}
{it:graph_options} are options allowed with {help scatter}.
{p 8 8 2}
Particular attention is drawn to {help advanced_options:recast()}, which
specifies a {help twoway} plottype that may be used to plot some {it:y}
versus some {it:x}. Possibilities include {help twoway_line:line} and
{help twoway_connected:connected}.
{p 4 8 2}
{cmd:sequence()} specifies text to appear in sequence to act as captions
for each plot. For example, {cmd:seq(a b c d)} specifies that successive
graphs will be labelled {cmd:a}, {cmd:b}, {cmd:c} and {cmd:d}. The
precise syntax is that successive {it:word}s of the argument will be
shown using the option
{cmd:caption("}{it:word}{cmd:", pos(11) size(large))}. As usual in
Stata, binding in double quotes {cmd:" "} is stronger than separation by
spaces, so syntax such as
{cmd:seq("first caption" "second caption" "third caption" "fourth caption")}
would show text with embedded spaces.
{p 4 8 2}
{cmd:seqopts()} specifies modification of the default display for
{cmd:sequence()}. For example, {cmd:seqopts(caption(, color(red))}
changes the text colour to red. Note that substantial changes are likely
to require use of the Graph Editor or your own syntax.
{p 4 8 2}
{cmd:combine()} specifies options allowed with {help graph combine}.
{title:Examples}
{p 4 8 2}{cmd:. sysuse auto, clear}{p_end}
{p 4 8 2}{cmd:. gen rt_mpg = sqrt(mpg)}{p_end}
{p 4 8 2}{cmd:. gen ln_mpg = ln(mpg)}{p_end}
{p 4 8 2}{cmd:. gen rec_mpg = 100/mpg}{p_end}
{p 4 8 2}{cmd:. crossplot (mpg rt_mpg ln_mpg rec_mpg) weight, combine(imargin(small))}
{p 4 8 2}{cmd:. use http://www.stata-press.com/data/r13/audiometric, clear}{p_end}
{p 4 8 2}{cmd:. crossplot (lft*) (rght*), jitter(1)}
{title:Author}
{p 4 4 2}Nicholas J. Cox, Durham University, U.K.{break}
n.j.cox@durham.ac.uk
{title:Acknowledgments}
{p 4 4 2}Rory Wolfe suggested the original problem.
Phil Ender alerted me to a bug.
Pete Watt made a helpful suggestion.
{p 4 4 2}I salute Burt S. Holland
(1946{c -}2010) and James Alexander Green (1926{c -}2014), from whose
excellent little book (Green 1965) I first learned of Cartesian products
and many other such standard beasts.
{title:References}
{p 4 8 2}
Green, J.A. 1965.
{it:Sets and groups.}
London: Routledge and Kegan Paul.
{p 4 8 2}
Heiberger, R.M. and Holland, B. 2004.
{it:Statistical analysis and data display: An intermediate course with examples in S-PLUS, R, and SAS.}
New York: Springer.
{p 4 8 2}
Heiberger, R.M. and Holland, B. 2008.
Structured sets of graphs.
In Chen, C., H{c a:}rdle, W. and Unwin, A. (Eds)
{it:Handbook of data visualization.}
Berlin: Springer, 415{c -}445.
{p 4 8 2}
Tufte, E.R. 1983, 2nd edition 2001.
{it:The visual display of quantitative information.}
Cheshire, CT: Graphics Press.
{p 4 8 2}
Tufte, E.R. 1990.
{it:Envisioning information.}
Cheshire, CT: Graphics Press.
{title:Also see}
{p 4 13 2}
On-line: help for {help twoway}, help for {help graph matrix},
help for {help combineplot} (if installed from SSC),
help for {help cpcorr} (if installed from SSC)