RE: [R] scaling axes when plotting multiple data sets

2005-02-17 Thread Prof Brian Ripley
On Wed, 16 Feb 2005 [EMAIL PROTECTED] wrote:
min, max, and range (and many other functions) take the na.rm parameter
to ignore NAs, but the Infs must be removed by hand as far as I know:
dat <- c(data1,data2,data3,data4)
dat <- dat[(dat!=Inf)&(dat!=(-Inf))]
rng <- range(dat, na.rm=TRUE)
then use xlim = rng
range(dat[is.finite(dat)]) is clearer, I find.
--
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, UKFax:  +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


Re: [R] scaling axes when plotting multiple data sets

2005-02-16 Thread Gabor Grothendieck
Benjamin M. Osborne  uvm.edu> writes:

: 
: 1) When adding additional data sets to a plot using "plot" followed 
by "lines",
: is there a way to automate the scaling of the axes to allow for all data sets
: to fit within the plot area?
: 
: 2) I attempted to solve this by setting
: xlim=c(min(c(data1,data2,data3)),max(c(data1,data2,data3)))
: however, there are some NAs and Infs in these data sets, and min(data1) and
: max(data1) both return NA, as with data2 and data3.  (These are time series).


Any of the following solutions would avoid having to calculate
maximum and minimum in the first place:

1. You can first plot all the data together using type = "n" (no points 
are actually shown) and then add them one by one 

plot(c(x1,x2), c(y1,y2), type = "n")
lines(x1, y1)
lines(x2, y2)

2. you may be able to use matplot.  See ?matplot .

3. if these are 'ts' class time series you could plot them all at once
using ts.plot even if they have different time bases.  See ?ts.plot

4. the 'zoo' library's plot function has facilities for plotting 
multiple time series all at once even if they have different time bases.
Seelibrary(zoo); ?plot.zoo

__
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


RE: [R] scaling axes when plotting multiple data sets

2005-02-16 Thread davidr
min, max, and range (and many other functions) take the na.rm parameter
to ignore NAs, but the Infs must be removed by hand as far as I know:

dat <- c(data1,data2,data3,data4)
dat <- dat[(dat!=Inf)&(dat!=(-Inf))]
rng <- range(dat, na.rm=TRUE)
then use xlim = rng

-- David Reiner

-Original Message-
From: Benjamin M. Osborne [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, February 16, 2005 4:04 PM
To: r-help@stat.math.ethz.ch
Subject: [R] scaling axes when plotting multiple data sets


1) When adding additional data sets to a plot using "plot" followed by
"lines",
is there a way to automate the scaling of the axes to allow for all data
sets
to fit within the plot area?

2) I attempted to solve this by setting
xlim=c(min(c(data1,data2,data3)),max(c(data1,data2,data3)))
however, there are some NAs and Infs in these data sets, and min(data1)
and
max(data1) both return NA, as with data2 and data3.  (These are time
series).

Thank you,
Ben Osborne

-- 
Botany Department
University of Vermont
109 Carrigan Drive
Burlington, VT 05405

[EMAIL PROTECTED]
phone: 802-656-0297
fax: 802-656-0440

__
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

__
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


Re: [R] scaling axes when plotting multiple data sets

2005-02-16 Thread Spencer Graves
 I just did "?min" and found an argument na.rm, which when TRUE 
causes "min" to ignore NAs.  Also, "See Also" for "?min" mentions 
"range", which returns a 2-vector consisting of both min and max.  The 
function "range" also accepts the na.rm argument.  AND the documentation 
for "range" includes a simple example that seems to demonstrate exactly 
what you are requesting here. 

 hope this helps. 
 spencer graves

Benjamin M. Osborne wrote:
1) When adding additional data sets to a plot using "plot" followed by "lines",
is there a way to automate the scaling of the axes to allow for all data sets
to fit within the plot area?
2) I attempted to solve this by setting
xlim=c(min(c(data1,data2,data3)),max(c(data1,data2,data3)))
however, there are some NAs and Infs in these data sets, and min(data1) and
max(data1) both return NA, as with data2 and data3.  (These are time series).
Thank you,
Ben Osborne
 

__
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


Re: [R] scaling axes when plotting multiple data sets

2005-02-16 Thread John Fox
Dear Ben,

On Wed, 16 Feb 2005 17:04:13 -0500
 "Benjamin M. Osborne" <[EMAIL PROTECTED]> wrote:
> 
> 1) When adding additional data sets to a plot using "plot" followed
> by "lines",
> is there a way to automate the scaling of the axes to allow for all
> data sets
> to fit within the plot area?
> 

Not, to my knowledge, after the fact.

> 2) I attempted to solve this by setting
> xlim=c(min(c(data1,data2,data3)),max(c(data1,data2,data3)))
> however, there are some NAs and Infs in these data sets, and
> min(data1) and
> max(data1) both return NA, as with data2 and data3.  (These are time
> series).
> 

Specifying, e.g., min(data1, data2, data3, na.rm=TRUE) will get rid of
the NAs, but it's not obvious that Infs should be removed, since if one
is present, shouldn't max be Inf?

If you want to get rid of the Infs, however, you could change them into
NAs, as in data1[data1 == Inf] <- NA, and proceed as above.

I hope this helps,
 John

> Thank you,
> Ben Osborne
> 
> -- 
> Botany Department
> University of Vermont
> 109 Carrigan Drive
> Burlington, VT 05405
> 
> [EMAIL PROTECTED]
> phone: 802-656-0297
> fax: 802-656-0440
> 
> __
> 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


John Fox
Department of Sociology
McMaster University
Hamilton, Ontario, Canada
http://socserv.mcmaster.ca/jfox/

__
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


[R] scaling axes when plotting multiple data sets

2005-02-16 Thread Benjamin M. Osborne

1) When adding additional data sets to a plot using "plot" followed by "lines",
is there a way to automate the scaling of the axes to allow for all data sets
to fit within the plot area?

2) I attempted to solve this by setting
xlim=c(min(c(data1,data2,data3)),max(c(data1,data2,data3)))
however, there are some NAs and Infs in these data sets, and min(data1) and
max(data1) both return NA, as with data2 and data3.  (These are time series).

Thank you,
Ben Osborne

-- 
Botany Department
University of Vermont
109 Carrigan Drive
Burlington, VT 05405

[EMAIL PROTECTED]
phone: 802-656-0297
fax: 802-656-0440

__
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