Description Usage Arguments Details Author(s) See Also Examples
View source: R/panel.lmlineq.R
This is an extension of the panel functions panel.abline
and
panel.lmline
to also draw a label on the line. The
default label is the line equation, and optionally the R squared value
of its fit to the data points.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | panel.ablineq(a = NULL, b = 0,
h = NULL, v = NULL,
reg = NULL, coef = NULL,
pos = if (rotate) 1 else NULL,
offset = 0.5, adj = NULL,
at = 0.5, x, y,
rotate = FALSE, srt = 0,
label = NULL,
varNames = alist(y = y, x = x),
varStyle = "italic",
fontfamily = "serif",
digits = 3,
r.squared = FALSE, sep = ", ", sep.end = "",
col, col.text, col.line,
..., reference = FALSE)
panel.lmlineq(x, y, ...)
|
a, b, h, v, reg, coef |
specification of the line.
The simplest usage is to give |
pos, offset |
passed on to |
adj |
passed on to |
fontfamily |
passed on to |
at |
position of the equation as a fractional distance along the line. This should be in the range 0 to 1. When a vertical line is drawn, this gives the vertical position of the equation. |
x, y |
position of the equation in native units. If given, this over-rides
|
rotate, srt |
set |
label |
the text to draw along with the line. If specified, this will be used instead of an equation. |
varNames |
names to display for |
varStyle |
the name of a |
digits |
number of decimal places to show for coefficients in equation. |
r.squared |
the R^2 statistic to display along with the equation of a line.
This can be given directly as a number, or |
sep, sep.end |
The R^2 ( |
..., col, col.text, col.line |
passed on to |
reference |
whether to draw the line in a "reference line" style, like that used for grid lines. |
The equation is constructed as an expression using plotmath
.
Felix Andrews felix@nfrac.org
panel.abline
,
panel.text
,
lm
,
plotmath
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | set.seed(0)
xsim <- rnorm(50, mean = 3)
ysim <- (0 + 2 * xsim) * (1 + rnorm(50, sd = 0.3))
## basic use as a panel function
xyplot(ysim ~ xsim, panel = function(x, y, ...) {
panel.xyplot(x, y, ...)
panel.ablineq(a = 0, b = 2, adj = c(0,1))
panel.lmlineq(x, y, adj = c(1,0), lty = 2,
col.line = "grey", digits = 1)
})
## using layers:
xyplot(ysim^2 ~ xsim) +
layer(panel.ablineq(lm(y ~ x, subset = x <= 3),
varNames = alist(y = y^2, x = x[x <= 3]), pos = 4))
## rotated equation (depends on device aspect at plotting time)
xyplot(ysim ~ xsim) +
layer(panel.ablineq(lm(y ~ x), rotate = TRUE, at = 0.8))
## horizontal and vertical lines
xyplot(ysim ~ xsim) +
layer(panel.ablineq(v = 3, pos = 4, at = 0.1, lty = 2,
label = "3.0 (critical value)")) +
layer(panel.ablineq(h = mean(ysim), pos = 3, at = 0.15, lty = 2,
varNames = alist(y = plain(mean)(y))))
## using layer styles, r.squared
xyplot(ysim ~ xsim) +
layer(panel.ablineq(lm(y ~ x), r.sq = TRUE,
at = 0.4, adj=0:1), style = 1) +
layer(panel.ablineq(lm(y ~ x + 0), r.sq = TRUE,
at = 0.6, adj=0:1), style = 2)
## alternative placement of equations
xyplot(ysim ~ xsim) +
layer(panel.ablineq(lm(y ~ x), r.sq = TRUE, rot = TRUE,
at = 0.8, pos = 3), style = 1) +
layer(panel.ablineq(lm(y ~ x + 0), r.sq = TRUE, rot = TRUE,
at = 0.8, pos = 1), style = 2)
update(trellis.last.object(),
auto.key = list(text = c("intercept", "no intercept"),
points = FALSE, lines = TRUE))
|
Loading required package: lattice
Loading required package: RColorBrewer
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.