[Rd] I wish xlim=c(0, NA) would work. How about I send you a patch?
baptiste.auguie at googlemail.com
Mon Apr 16 22:29:20 CEST 2012
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))
On 17 April 2012 08:20, Greg Snow <538280 at 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
> 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 <pauljohn32 at 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)
>> ## 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))
>> 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!
>> 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 at r-project.org mailing list
> Gregory (Greg) L. Snow Ph.D.
> 538280 at gmail.com
> R-devel at r-project.org mailing list
More information about the R-devel