John Poulsen
2008-May-05 17:10 UTC
[R] Plotting points on line graphs using xYplot in Hmisc
Hello,
I am using xYplot to plot lines with confidence bands (see test
example below). I would like to add a single point with
confidence bars to each graph (coordinates of the points below:
px, py, pxlow, etc...). I tried playing with
panel=panel.superpose, but failed to get it to work. Any ideas on
how to add these points to the graphs?
Thanks for your help,
John
## Test example
x1=seq(1,30,0.5)
y1=x1^2
y2=10*(x1^2)
ycomb=c(y1,y2)
y.up=ycomb+0.1*ycomb
y.low=ycomb-0.1*ycomb
grp=rep(c("Anls","Plts"),each=length(x1))
dat=as.data.frame(cbind(ycomb, y.up, y.low,
rep(x1,2)),stringsAsFactors=F)
colnames(dat)=c("ycomb","y.up","y.low","x1")
py=c(200,2000); pylow=c(190,1900); pyhi=c(210,2100)
px=c(0,0); pxlow=c(0,0); pxhi=c(0,0)
with(dat,xYplot(Cbind(ycomb, y.up, y.low)~x1|factor(grp),
data=dat,type="l", method="filled bands",
col.fill="light
grey",
scales=list(y=list(relation="free"),x=list(alternating=c(1,1,1))),
ylim=list(c(0,1200),c(0,10000)),
strip=strip.custom(factor.levels=c(expression("Anls
km"^2),expression("Plants km"^2)))))
-------------------------------
John Poulsen
223 Bartram Hall PO Box 118525
University of Florida
Gainesville, FL 32611-8525
Deepayan Sarkar
2008-May-05 19:38 UTC
[R] Plotting points on line graphs using xYplot in Hmisc
On 5/5/08, John Poulsen <jpoulsen at ufl.edu> wrote:> > > Hello, > > I am using xYplot to plot lines with confidence bands (see test example > below). I would like to add a single point with confidence bars to each > graph (coordinates of the points below: px, py, pxlow, etc...). I tried > playing with panel=panel.superpose, but failed to get it to work. Any ideas > on how to add these points to the graphs?If you want to add the same lines/points in all panels, you could write a not-too-complicated custom panel function; e.g., with(dat, xYplot(Cbind(ycomb, y.up, y.low)~x1|factor(grp), data=dat,type="l", method="filled bands", col.fill="light grey", subscripts = TRUE, panel = function(...) { panel.xYplot(...) panel.segments(pxlow, pylow, pxhi, pyhi) }, scales list(y=list(relation="free"), x=list(alternating=c(1,1,1))), ylim=list(c(0,1200),c(0,10000)))) -Deepayan
John Poulsen
2008-May-09 14:28 UTC
[R] Plotting points on line graphs using xYplot in Hmisc
Hello Deepayan, Thanks for the below solution to my graphing problem - just what I was looking for. One quick additional question, where do I change graphical settings (lwd, pch, etc...) for the added points? Thanks, John On 5/5/08, John Poulsen <jpoulsen at ufl.edu> wrote:> > > > > > Hello, > > > > I am using xYplot to plot lines with confidence bands (see > test example > > below). I would like to add a single point with confidence > bars to each > > graph (coordinates of the points below: px, py, pxlow, etc...). > I tried > > playing with panel=panel.superpose, but failed to get it to > work. Any ideas > > on how to add these points to the graphs?If you want to add the same lines/points in all panels, you could write a not-too-complicated custom panel function; e.g., with(dat, xYplot(Cbind(ycomb, y.up, y.low)~x1|factor(grp), data=dat,type="l", method="filled bands", col.fill="light grey", subscripts = TRUE, panel = function(...) { panel.xYplot(...) panel.segments(pxlow, pylow, pxhi, pyhi) }, scales list(y=list(relation="free"), x=list(alternating=c(1,1,1))), ylim=list(c(0,1200),c(0,10000)))) -Deepayan ------------------------------- John Poulsen 223 Bartram Hall PO Box 118525 University of Florida Gainesville, FL 32611-8525
John Poulsen
2008-May-09 17:40 UTC
[R] Plotting points on line graphs using xYplot in Hmisc
Hello Deepayan, Please ignore my last e-mail and question. The information was easily found in ?panel.segments. Thanks, John On 5/5/08, John Poulsen <jpoulsen at ufl.edu> wrote:> > > > > > Hello, > > > > I am using xYplot to plot lines with confidence bands (see > test example > > below). I would like to add a single point with confidence > bars to each > > graph (coordinates of the points below: px, py, pxlow, etc...). > I tried > > playing with panel=panel.superpose, but failed to get it to > work. Any ideas > > on how to add these points to the graphs?If you want to add the same lines/points in all panels, you could write a not-too-complicated custom panel function; e.g., with(dat, xYplot(Cbind(ycomb, y.up, y.low)~x1|factor(grp), data=dat,type="l", method="filled bands", col.fill="light grey", subscripts = TRUE, panel = function(...) { panel.xYplot(...) panel.segments(pxlow, pylow, pxhi, pyhi) }, scales list(y=list(relation="free"), x=list(alternating=c(1,1,1))), ylim=list(c(0,1200),c(0,10000)))) -Deepayan ------------------------------- John Poulsen 223 Bartram Hall PO Box 118525 University of Florida Gainesville, FL 32611-8525