On Jun 15, 2010, at 12:11 PM, Ted Harding wrote: > On 15-Jun-10 16:01:24, William Dunlap wrote: >>> -----Original Message----- >>> From: r-help-boun...@r-project.org >>> [mailto:r-help-boun...@r-project.org] On Behalf Of >>> ted.hard...@manchester.ac.uk >>> Sent: Tuesday, June 15, 2010 8:49 AM >>> To: r-h...@stat.math.ethz.ch >>> Subject: [R] Unspecified [upper] xlim/ylim? >>> >>> Greetings! >>> I would like to be able to specify a fixed (say) lower limit >>> for plotting, while leaving the upper limit "floating, when >>> plotting. The context is that the maximum in the data to be >>> plotted is unpredictable, being the consequence of a simulation, >>> whereas I know that it cannot be less than (say) 0; and I want >>> to fix the lower limit at 0 in any plot, leaving the upper limit >>> to be assigned by plot() as a result of the computed values. >>> >>> I know I can do this by determining the max() of the data, and >>> then computing a "Ymax" to put in (say) ylim = c(0,Ymax). However, >>> for certain reasons, I would prefer not to have to do this. >>> (And it's just a preference ... ). >>> >>> Whereas one can leave the whole issue of setting both plotting >>> limits to plot(), by not specifying ylim (or xlim), or one can >>> explcitily specify both the upper and lower limits by (say) >>> ylim=c(Ymin,Ymax), there seems to be no way of fixing one and >>> leaving the other floating so that plot() would do its own thing. >>> >>> ylim requires two numbers to be given. Things like ylim=c(0,) >>> or ylim=c(0,NA) would generate an error. >> >> Currently ylim=c(yValueAtBottomOfPlot, yValueAtTopOfPlot), not >> c(yMin,yMax). E.g., ylim=c(10,0) means to reverse the y axis, >> with 0 at the top and 10 at the bottom. Putting an NA into >> ylim seems attractive but doesn't it run into problems because >> ylim doesn't mean c(yMin,yMax)? >> >> Bill Dunlap >> Spotfire, TIBCO Software >> wdunlap tibco.com >> >>> >>> Am I chasing a phantom? Or is there a way? >>> Thanks >>> Ted. > > Sorry, Bill, but you've misunderstood what I mean by "Ymin" and "Ymax". > As explained, these are notations for values which I either compute, > or choose, to put in as the arguments in ylim=c(... , ...). YMin and > Ymax would be such as to ensure that the range of the axis included > at least the range (Ymin,Ymax) (or, depending on the choice, possibly > to exclude certain values from the plot). > > So, indeed, ylim does mean c(Ymin,Tmax). > > Ted.
Ted, perhaps I am being dense here (always a possibility), but by default if, for example, 'ylim' is unspecified, plot() essentially uses range(YVals) as the min/max values for the Y axis. Also, by default, with par(yaxs = "r"), the Y axis range is extended by 4% in both directions. Same for the x axis range. Here is the snippet of relevant code from plot.default() for 'ylim': ylim <- if (is.null(ylim)) range(xy$y[is.finite(xy$y)]) else ylim Thus, if you want to explicitly specify the low end of the range for the Y axis and have the upper end of the range left to the default methodology, you would indeed use: ylim = c(0, max(YVals)) as the argument syntax. The same would apply for the x axis limits. Is that what you are after? HTH, Marc Schwartz ______________________________________________ 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.