Dan Kelley wrote:
I am trying to plot two things on one graph, with a y-axis at the left for
one variable, and a y-axis at the right, for the other variable. I thought
I could do as follows
par(mar=rep(4.5, 4))
plot(0:10, 10:20)
par(new=TRUE)
plot(0:10, 100:110, axes=FALSE)
axis(4)
but this writes both y-axis labels on the left-hand side, and nothing on the
right-hand side. This is R 2.8.1 (2008-12-22) on OS-X.
Am I missing something?
PS. I know that I can just make ylab="" and draw the right-hand axis name
with mtext, but that then I would need to check par(mgp), to find where
place it, etc. I'm thinking that I am just missing something in my
understanding.
axis() doesn't draw axis labels. There isn't a simple function for
drawing text on side 4 as far as I know, but mtext is not so bad: use
mtext("Right label", side=4, line=3)
to emulate the default ylab, but put it on the right. See ?title for
more details if you've changed the default locations.
I don't like to use plot(new=TRUE), because there are lots of things
that can go wrong when you overplot high level graphics (I'd use
points() instead), but your example is one of the few cases where you
can make just as many errors using points() as using par(new=TRUE). Are
you really sure you want a graph with two different scales on it?
Duncan Murdoch
______________________________________________
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.