The simple work around is to use the range function, if you use something like: xlim=range(0,x) then 0 will be included in the range of the x axis (and if there are values less than 0 then those values will be included as well) and the max is computed from the data as usual. The range function will also accept multiple vectors and make the range big enough to include all of them on the plot (this is what I use when I will be adding additional information using points or lines).
With this functionality in range I don't really see much need for the proposed change, maybe an example on the plot help page to show this would suffice. On Mon, Apr 16, 2012 at 11:52 AM, Paul Johnson <pauljoh...@gmail.com> wrote: > I'm looking for an R mentor. I want to propose a change in management > of plot options xlim and ylim. > > Did you ever want to change one coordinate in xlim or ylim? It happens > to me all the time. > > x <- rnorm(100, m=5, s=1) > y <- rnorm(100, m=6, s=1) > plot(x,y) > > ## Oh, I want the "y axis" to show above x=0. > > plot(x,y, xlim=c(0, )) > > ##Output: Error in c(0, ) : argument 2 is empty > > plot(x,y, xlim=c(0,NA )) > ## Output: Error in plot.window(...) : need finite 'xlim' values > > > I wish that plot would let me supply just the min (or max) and then > calculate the other value where needed. > It is a little bit tedious for the user to do that for herself. The > user must be knowledgeable enough to know where the maximum (MAX) is > supposed to be, and then supply xlim=c(0, MAX). I can't see any reason > for insisting users have that deeper understanding of how R calculates > ranges for plots. > > Suppose the user is allowed to supply NA to signal R should fill in the > blanks. > > plot(x,y, xlim=c(0, NA)) > > > In plot.default now, I find this code to manage xlim > > xlim <- if (is.null(xlim)) > range(xy$x[is.finite(xy$x)]) > > And I would change it to be something like > ##get default range > nxlim <- range(xy$x[is.finite(xy$x)]) > > ## if xlim is NULL, so same as current > xlim <- if (is.null(xlim)) nxlim > ## Otherwise, replace NAs in xlim with values from nxlim > else xlim[ is.na(xlim) ] <- nxlim[ is.na(xlim) ] > > > Who is the responsible party for plot.default. How about it? > > Think of how much happier users would be! > > pj > -- > Paul E. Johnson > Professor, Political Science Assoc. Director > 1541 Lilac Lane, Room 504 Center for Research Methods > University of Kansas University of Kansas > http://pj.freefaculty.org http://quant.ku.edu > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel -- Gregory (Greg) L. Snow Ph.D. 538...@gmail.com ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel