Hi, Using range wouldn't help if you wanted to restrict one of the limits, not stretch it
plot(1:11, y <- seq(-5, 5), ylim= range(0, y)) baptiste On 17 April 2012 08:20, Greg Snow <538...@gmail.com> wrote: > 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 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel