[Rd] Wishlist for plot.lm() (PR#13560)
john.maindonald at anu.edu.au
john.maindonald at anu.edu.au
Sun Mar 1 04:55:06 CET 2009
Full_Name: John Maindonald
Version: R-2.8.1
OS: MacOS X 10.5.6
Submission from: (NULL) (203.173.3.75)
The following code demonstrates an annoyance with plot.lm():
library(DAAGxtras)
x11(width=3.75, height=4)
nihills.lm <- lm(log(time) ~ log(dist) + log(climb), data = nihills)
plot(nihills.lm, which=5)
OR try the following
xy <- data.frame(x=c(3,1:5), y=c(-2, 1:5))
plot(lm(y ~ x, data=xy), which=5)
The "Cook's distance" text overplots the label for the point with the smallest
residual. This is an issue when the size of the plot is much less than the
default, and the pointsize is not reduced proportionately.
I suggest the following:
xx <- hii
xx[xx >= 1] <- NA
## Insert new code
fracht <- (1.25*par()$cin[2])/par()$pin[2]
ylim[1] <- ylim[1] - diff(ylim)*max(0, fracht-0.04)
## End insert new code
plot(xx, rsp, xlim = c(0, max(xx, na.rm = TRUE)),
ylim = ylim, main = main, xlab = "Leverage",
ylab = ylab5, type = "n", ...)
Then, about 15 lines further down, replace
legend("bottomleft", legend = "Cook's distance",
lty = 2, col = 2, bty = "n")
by
legend("bottomleft", legend = "Cook's distance",
lty = 2, col = 2, text.col=2, bty = "n", y.intersp=0.5)
# This changes the legend color to agree with the line color
Another possibility, suggested by John Fox, is to replace the caption by "Cook's
distance contours", and omit the legend entirely.
Both John Fox and myself are comfortable with either of these fixes.
Test the changes with:
x11()
nihills.lm <- lm(log(time) ~ log(dist) + log(climb), data = nihills)
plot(nihills.lm, which=5)
xy <- data.frame(x=c(3,1:5), y=c(-2, 1:5))
plot(lm(y ~ x, data=xy), which=5)
x11(width=3.75, height=4)
plot(nihills.lm, which=5)
plot(lm(y ~ x, data=xy), which=5)
More information about the R-devel
mailing list