For most purposes it is easiest to use matplot() to plot superimposed plots like this. E.g.
x <- 0.1*(0:20) matplot(x, cbind(sin(x), cos(x)), "pl", pch=1) On Wed, 13 Jul 2005, Robin Hankin wrote: > Hi > > Ted makes a good point... matlab can dynamically rescale a plot in > response > to plot(...,add=TRUE) statements. > > For some reason which I do not understand, the rescaling issue is > only a problem > for me when working in "matlab mode". It's not an issue when working > in "R mode" > > Ted pointed out that the following does not behave as intended: > > >> x = 0.1*(0:20); >> plot(x,sin(x)) >> lines(x,1.5*cos(x)) > > > and presented an alternative method in which ylim was set by hand. I > would suggest: > > x <- 0.1*(0:20) > y1 <- sin(x) > y2 <- 1.5*cos(x) > > plot(c(x,x),c(y1,y2),type="n") > lines(x,y1) > lines(x,y2) > > because this way, the axes are set by the plot() statement, but > nothing is plotted. > > > best wishes > > rksh > > > > > > On 13 Jul 2005, at 09:12, (Ted Harding) wrote: >>> >> >> Although this is an over-worked query -- for which an answer, given >> that t="l" has been specified, is to use >> >> plot(a,t="l",col="blue",ylim=c(0,10)) >> lines(b,t="l",col="red") >> >> there is a more interesting issue associated with it (given that >> Klebyn has come to it from a Matlab perspective). >> >> It's a long time since I used real Matlab, but I'll illustrate >> with octave which, in this respect, should be identical to Matlab. >> >> Octave: >> >> octave:1> x = 0.1*(0:20); >> octave:2> plot(x,sin(x)) >> >> produces a graph of sin(x) with the y-axis scaled from 0 to 1.0 >> Next: >> >> octave:3> hold on >> octave:4> plot(x,1.5*cos(x)) >> >> superimposes a graph of 1.5*cos(x) with the y-axis automatically >> re-scaled from -1 to 1.5. >> >> This would not have happened in R with >> >> x = 0.1*(0:20); >> plot(x,sin(x)) >> lines(x,1.5*cos(x)) >> >> where the 0 to 1.0 scaling of the first plot would be kept for >> the second, in which therefore part of the additional graph of >> 1.5*cos(x) would be "outside the box". >> >> No doubt like many others, I've been caught on the wrong foot >> by this more than a few times. The solution, of course (as >> illustrated in the reply to Klebyn above) is to anticipate >> what scaling you will need for all the graphs you intend to >> put on the same plot, and set up the scalings at the time >> of the first one using the options "xlim" and "ylim", e.g.: >> >> x = 0.1*(0:20); >> plot(x,sin(x),ylim=c(-1,1.5)) >> lines(x,1.5*cos(x)) >> >> This is not always feasible, and indeed should not be expected >> to be feasible since part of the reason for using software >> like R in the first place is to compute what you do not know! >> >> Indeed, R will not allow you to use "xlim" or "ylim" once the >> first plot has been drawn. >> >> So in such cases I end up making a note (either on paper or, >> when I do really serious planning, in auxiliary variables) >> of the min's and max's for each graph, and then re-run the >> plotting commands with appropriate "xlim" and "ylim" scaling >> set up in the first plot so as to include all the subsequent >> graphs in entirety. (Even this strategy can be defeated if >> the succesive graphs represent simulations of long-tailed >> distributions. Unless of course I'm sufficiently alert to >> set the RNG seed first as well ... ) >> >> I'm not sufficiently acquainted with the internals of "plot" >> and friends to anticipate the answer to this question; but, >> anyway, the question is: >> >> Is it feasible to include, as a parameter to "plot", "lines" >> and "points", >> >> rescale=FALSE >> >> where this default value would maintain the existing behaviour >> of these functions, while setting >> >> rescale=TRUE >> >> would allow each succeeding plot, adding graphs using "points" >> or "lines", to be rescaled (as in Matlab/Octave) so as to >> include the entirety of each successive graph? >> >> Best wishes to all, >> Ted. >> >> >> -------------------------------------------------------------------- >> E-Mail: (Ted Harding) <[EMAIL PROTECTED]> >> Fax-to-email: +44 (0)870 094 0861 >> Date: 13-Jul-05 Time: 09:12:34 >> ------------------------------ XFMail ------------------------------ >> >> ______________________________________________ >> R-help@stat.math.ethz.ch mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide! http://www.R-project.org/posting- >> guide.html >> > > -- > Robin Hankin > Uncertainty Analyst > National Oceanography Centre, Southampton > European Way, Southampton SO14 3ZH, UK > tel 023-8059-7743 > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > -- Brian D. Ripley, [EMAIL PROTECTED] Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html