Draw a "ladder of powers" plot, plotting each of several powers of y against the same powers of x.
Draw a "ladder of powers" plot, plotting each of several powers of y against the same powers of x. The powers are
result <- data.frame(-1/x, -1/sqrt(x), log(x), sqrt(x), x, x^2)
names(result) <- c(-1, -.5, 0, .5, 1, 2)
ladder(formula.in, data=NULL,
main.in="Ladders of Powers",
panel.in=panel.cartesian,
xlab=deparse(formula.in[[3]]),
ylab=deparse(formula.in[[2]]),
scales=list(alternating=FALSE,
labels=FALSE, ticks=FALSE, cex=.6),
par.strip.text=list(cex=.6),
cex=.5, pch=16, between=list(x=.3, y=.3),
dsx=xlab,
dsy=ylab,
ladder.function=ladder.f,
strip.number=2,
strip.names,
strip.style=1,
strip,
oma=c(0,0,0,0), ## S-Plus
axis3.line=.61,
layout=c(length(tmp$x.power), length(tmp$y.power)),
axis.key.padding = 10, ## R right axis
key.axis.padding = 10, ## R top axis
useOuter=TRUE, ## R useOuterStrips(combineLimits(result))
...)
ladder3(x, y,
dsx=deparse(substitute(x)),
dsy=deparse(substitute(y)),
ladder.function=ladder.f)
ladder.f(x, name.prefix="")
ladder.fstar(x, name.prefix="")
strip.ladder(which.given,
which.panel,
var.name,
factor.levels,
shingle.intervals,
par.strip.text=trellis.par.get("add.text"),
strip.names=c(TRUE,TRUE),
style=1,
...)formula.in |
A formula with exactly one variable on each side. |
data |
data.frame |
main.in |
|
panel.in |
|
xlab, ylab |
Trellis arguments, default to right- and left-sides
of the |
strip |
Strip function. Our default is |
cex, pch, between, scales, layout |
arguments for |
dsx, dsy |
Names to be used as level names in
|
ladder.function |
function to use to create data.frame of powers of input variable. |
name.prefix |
Base name used for column names of powers. The
default is empty ( |
strip.number |
Number of strip labels in each panel of the display.
0: no strip labels; 1: one strip label of the form |
useOuter |
logical, defaults to |
strip.style |
|
oma |
argument to |
... |
other arguments to |
axis3.line |
extra space to make the top axis align with the top of the top row of panels. Trial and error to choose a good value. |
axis.key.padding |
Extra space on right of set of panels in R. |
key.axis.padding |
Extra space on top of set of panels in R. |
x, y |
variables. |
which.given, which.panel, var.name, factor.levels,
shingle.intervals, par.strip.text |
See
|
strip.names, style |
We always print the |
The ladder function uses panel.cartesian which is
defined differently in R (using grid graphics) and S-Plus (using
traditional graphics). Therefore the fine control over appearance
uses different arguments or different values for the same arguments.
ladder returns a "trellis" object.
The functions ladder.fstar and ladder.f take an input
vector x of non-negative values and construct a data.frame by
taking the input to the powers c(-1, -.5, 0, .5, 1, 2), one
column per power. ladder.f uses the simple powers and
ladder.fstar uses the scaled Box–Cox transformation.
ladder.fstar |
ladder.fstar |
notation |
(x^p - 1)/p |
(x^p - 1)/p |
p |
(1/x - 1)/(-1) |
(1/x - 1)/(-1) |
-1.0 |
(1/sqrt(x)-1)/(-.5) |
(1/sqrt(x)-1)/(-.5) |
-0.5 |
log(x) |
log(x) |
0.0 |
((sqrt(x)-1)/.5) |
((sqrt(x)-1)/.5) |
0.5 |
x-1 |
x-1 |
1.0 |
(x^2 - 1)/2 |
(x^2 - 1)/2 |
2.0 |
ladder3 takes two vectors as arguments. It returns a
data.frame with five columns:
X, Y: data to be plotted. The column X contains the data
from the input x taken to all the powers and aligned with the
similarly expanded column Y.
x, y: symbolic labeling of the power corresponding to X,Y.
group: result from pasting the labels in x, y with *
between them.
Richard M. Heiberger <rmh@temple.edu>
Heiberger, Richard M. and Holland, Burt (2015). Statistical Analysis and Data Display: An Intermediate Course with Examples in R. Second Edition. Springer-Verlag, New York. https://www.springer.com/us/book/9781493921218
Hoaglin, D.~C., Mosteller, F., and Tukey, J.~W., editors (1983). Understanding Robust and Exploratory Data Analysis. Wiley.
Box, G. E.~P. and Cox, D.~R. (1964). An analysis of transformations. J. Royal Statist Soc B, 26:211–252.
data(tv)
## default
## R: outer strip labels
ladder(life.exp ~ ppl.per.phys, data=tv,
main="Ladder of Powers for Life Expectancy and People per Physician")
## Not run:
## one strip label
ladder(life.exp ~ ppl.per.phys, data=tv, strip.number=1, useOuter=FALSE,
dsx="ppp", dsy="le")
## two strip labels
ladder(life.exp ~ ppl.per.phys, data=tv, strip.number=2, useOuter=FALSE)
## outer strip labels
ladder(life.exp ~ ppl.per.phys, data=tv, useOuter=TRUE)
## no strip labels (probably silly, but possible)
ladder(life.exp ~ ppl.per.phys, data=tv, strip.number=0, useOuter=FALSE)
## End(Not run)Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.