It's really not that difficult to fix with some simple changes to the
code:
scatter.smooth.col <-
function (x, y = NULL, span = 2/3, degree = 1, family = c("symmetric",
"gaussian"), xlab = NULL, ylab = NULL, ylim = range(y, pred$y,
na.rm = TRUE), evaluation = 50, ..., lcol, llty, llwd)
{
xlabel <- if (!missing(x))
deparse(substitute(x))
ylabel <- if (!missing(y))
deparse(substitute(y))
xy <- xy.coords(x, y, xlabel, ylabel)
x <- xy$x
y <- xy$y
xlab <- if (is.null(xlab))
xy$xlab
else xlab
ylab <- if (is.null(ylab))
xy$ylab
else ylab
pred <- loess.smooth(x, y, span, degree, family, evaluation)
plot(x, y, ylim = ylim, xlab = xlab, ylab = ylab, ...)
lines(pred$x, pred$y, col=lcol, lty=llty, lwd=llwd)
invisible()
}
require(graphics) # Not really sure why this is needed but it's in
the help page
with(cars, scatter.smooth.col(speed, dist, lcol="red", llwd=3, llty=3))
# dotted thick smoothed line results
--
David
On Jun 22, 2012, at 10:51 AM, Mark Payne wrote:
Hi David,
Thanks for the reply. I agree - it just seemed that it was something
fairly obvious that was missing from an otherwise handy little
function.... Would it be appropriate to file it as a "request for
improvement" in the bug tracking system?
Mark
On 22 June 2012 16:30, David L Carlson - dcarl...@tamu.edu
<+r-help+trevva+3b274928d0.dcarlson#tamu....@spamgourmet.com> wrote:
You are correct about scatter.smooth, but loess.smooth
(listed along with scatter.smooth on the same
help page) gives you the way to get what you want:
x <- rnorm(25)
y <- rnorm(25)
plot(x, y)
lines(loess.smooth(x,y), col="red", lty=2, lwd=2)
----------------------------------------------
David L Carlson
Associate Professor of Anthropology
Texas A&M University
College Station, TX 77843-4352
-----Original Message-----
From: r-help-boun...@r-project.org [mailto:r-help-bounces@r-
project.org] On Behalf Of r-help.20.tre...@spamgourmet.com
Sent: Friday, June 22, 2012 6:04 AM
To: r-help@r-project.org
Subject: [R] scatter.smooth() line colour
Hi,
I really like the scatter.smooth() function - its extremeley useful.
However, as far as I understand it, there is no way to change the
properties of the smoothing line e.g. col, lty, lwd. The
scatter.smooth function accepts a ... argument, but these are not
passed to the plotting function that actually plots the smoother -
only to the function that plots the points. Could I please therefore
request that an argument be added to this function to give easier
control over line properties? e.g. line.par=list()
Best wishes,
Mark Payne
David Winsemius, MD
West Hartford, CT
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.