Davaren1@aol.com
2005-May-03 05:15 UTC
[R] Combining numeric vs numeric & numeric vs factor graphs into one ps/pdf file
Dear R community, xyplot (lattice) has been great in displaying tons of data for my research. I have used the following two xyplot commands (with example dataframe) to create two separate postscript/pdf files with respect to the variable "acft" and subset "status": test.df [[alternative HTML version deleted]]
Arenas, David R. CIV NAVAIR DEPT
2005-May-03 15:44 UTC
[R] Combining numeric vs numeric & numeric vs factor graphs into one ps/pdf file
Dear R community,
My previous email was incomplete because I used html format. Here it is again
and sorry for any inconvenience:
xyplot (lattice) has been great in displaying tons of data for my research. I
have used the following two xyplot commands (with example dataframe) to create
two separate postscript/pdf files with respect to the variable "acft"
and subset "status":
test.df <-
data.frame(acft=factor(c("A","B","C","D")),
status=factor(c("fail","pass","fail","pass")),
site=factor(c("E1","E1","E2","E2")),
CD=as.numeric(c(1,1,3,3)),
H=as.numeric(c(80,NA,60,NA)))
xyplot(H ~ CD | acft,
data=test.df,
subset=status=="fail",
layout=c(1,1) )
xyplot(site ~ CD | acft,
data=test.df,
subset=status=="pass",
layout=c(1,1) )
I would like to combine all graphs into one file in alphabetical order of
variable "acft". The graphs would be one per page where in fact I use
layout=c(1,1) for the nice and easily seen strip labels for "acft".
The problem I am having is combining x-y plots that are numeric vs numeric &
numeric vs factor. I have search the R-help archives and R-project references
for an example to no avail. I am thinking I may have to use something (lattice
or not) like ...
if any(test.df$Status=="fail")
plot(H ~ CD)
else
plot(site ~ CD)
with "for" in the beginning to loop through all data with respect to
acft. I need a hint on how to further this along. I am using R.2.1.0 via
Windows XP.
Thank you for any help,
D. Arenas
[[alternative HTML version deleted]]
David Hugh-Jones
2005-May-03 16:49 UTC
[R] Combining numeric vs numeric & numeric vs factor graphs into one ps/pdf file
Hi David
You probably want to write your own panel function and pass it into
xyplot(). Something like
mypanel <- function (x,y, groups, subscripts) {
if (status[subscripts] == "pass") {
panel.xyplot(H,CD)
}
else {
panel.xyplot(site, CD)
}
}
Check out the "groups" and "subscripts" arguments to xyplot.
cheers
Dave
On 03/05/05, Arenas, David R. CIV NAVAIR DEPT <david.arenas at navy.mil>
wrote:> Dear R community,
>
> My previous email was incomplete because I used html format. Here it is
again and sorry for any inconvenience:
>
> xyplot (lattice) has been great in displaying tons of data for my research.
I have used the following two xyplot commands (with example dataframe) to create
two separate postscript/pdf files with respect to the variable "acft"
and subset "status":
>
> test.df <-
data.frame(acft=factor(c("A","B","C","D")),
>
status=factor(c("fail","pass","fail","pass")),
>
site=factor(c("E1","E1","E2","E2")),
> CD=as.numeric(c(1,1,3,3)),
> H=as.numeric(c(80,NA,60,NA)))
>
> xyplot(H ~ CD | acft,
> data=test.df,
> subset=status=="fail",
> layout=c(1,1) )
>
> xyplot(site ~ CD | acft,
> data=test.df,
> subset=status=="pass",
> layout=c(1,1) )
>
> I would like to combine all graphs into one file in alphabetical order of
variable "acft". The graphs would be one per page where in fact I use
layout=c(1,1) for the nice and easily seen strip labels for "acft".
The problem I am having is combining x-y plots that are numeric vs numeric &
numeric vs factor. I have search the R-help archives and R-project references
for an example to no avail. I am thinking I may have to use something (lattice
or not) like ...
>
> if any(test.df$Status=="fail")
> plot(H ~ CD)
> else
> plot(site ~ CD)
>
> with "for" in the beginning to loop through all data with respect
to acft. I need a hint on how to further this along. I am using R.2.1.0 via
Windows XP.
>
> Thank you for any help,
>
> D. Arenas
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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
>
Arenas, David R. CIV NAVAIR DEPT
2005-May-05 19:38 UTC
[R] Combining numeric vs numeric & numeric vs factor graphs into one ps/pdf file
Deepayan,
Thank you for your response. I tried your suggestion to manually specify the
y-axis label for the factor but I am stuck. My attempt is below. I once again
appreciate any input as well as your time. lattice/R-project is great.
Thanks once again,
David Arenas
# Example dataframe
test.df <-
data.frame(acft=factor(c("A","B","C","D")),
status=factor(c("fail","pass","fail","pass")),
site=factor(c("E1","E1","E2","E2")),
CD=as.numeric(c(1,1,3,3)),
H=as.numeric(c(80,NA,60,NA)))
# Your previous suggestion
xyplot(ifelse(status=="pass", as.numeric(site), H) ~ CD| acft,
data=test.df,
scales="free",
xlim=c(0,4))
# My attempt to manually adjust the y-axis label for the factor "site"
# site has E1 & E2 that are read as 1 and 2, so I am trying to adjust
# the ylim for acft B and D to c(0,2) but I get an error
xyplot(ifelse(status=="pass", as.numeric(site), H) ~ CD| acft,
data=test.df,
scales="free",
prepanel=function(x,y) {
ylim <- if(test.df$status=="pass") 2 else 90
list(xlim=range(0:4),
ylim=range(0:ylim)) } )
-----Original Message-----
From: Deepayan Sarkar [mailto:deepayan at stat.wisc.edu]
Sent: Tuesday, May 03, 2005 19:59
To: r-help at stat.math.ethz.ch
Cc: Arenas, David R. CIV NAVAIR DEPT
Subject: Re: [R] Combining numeric vs numeric & numeric vs factor graphs
into one ps/pdf file
On Tuesday 03 May 2005 10:44, Arenas, David R. CIV NAVAIR DEPT
wrote:> Dear R community,
>
> My previous email was incomplete because I used html format. Here it
> is again and sorry for any inconvenience:
>
> xyplot (lattice) has been great in displaying tons of data for my
> research. I have used the following two xyplot commands (with
> example dataframe) to create two separate postscript/pdf files with
> respect to the variable "acft" and subset "status":
>
> test.df <-
data.frame(acft=factor(c("A","B","C","D")),
>
>
status=factor(c("fail","pass","fail","pass")),
>
site=factor(c("E1","E1","E2","E2")),
CD=as.numeric(c(1,1,3,3)),
> H=as.numeric(c(80,NA,60,NA)))
>
> xyplot(H ~ CD | acft,
> data=test.df,
> subset=status=="fail",
> layout=c(1,1) )
>
> xyplot(site ~ CD | acft,
> data=test.df,
> subset=status=="pass",
> layout=c(1,1) )
>
> I would like to combine all graphs into one file in alphabetical
> order of variable "acft". The graphs would be one per page where
in
> fact I use layout=c(1,1) for the nice and easily seen strip labels
> for "acft". The problem I am having is combining x-y plots that
are
> numeric vs numeric & numeric vs factor. I have search the R-help
> archives and R-project references for an example to no avail. I am
> thinking I may have to use something (lattice or not) like ...
>
> if any(test.df$Status=="fail")
> plot(H ~ CD)
> else
> plot(site ~ CD)
>
> with "for" in the beginning to loop through all data with respect
to
> acft. I need a hint on how to further this along. I am using
> R.2.1.0 via Windows XP.
I can't think of a clean way to do this. You could of course do
xyplot(ifelse(status == "pass", as.numeric(site), H) ~ CD| acft,
data=test.df, scales = "free",
layout=c(1,1) )
but this wouldn't give very nice axis labels for the factor (unless you
specify them manually, which could be done).
Deepayan