Hello Deepayan,

Thanks for your help - it works great now. Indeed, there was also a problem with the way I specified the curve. Once I made the suggests you suggested I ended up with an error:

//"Error using packet 1 argument "subscripts" is missing, with no default"

//which I fixed by adding "subscripts" to my panel function.
I am including the fixed code below in case it can help anyone else.

Thanks,
John
-----------------------------------


a=0.07; b=74.3; c=0.43
sds=rep(c(0,3,5,10,20,50,200), each=3)
y1=c(0,0,0.16, 0, 0.33,0.5, 0.16, 0.83, 1.16, 0.67, 0.5, 1.16, 0.83, 2.33, 3.6, 5.5, 4.33, 1.16, 22, 13, 12)
lo=y1-0.1*y1
hi=y1+0.1*y1

# Figure 1
xYplot(Cbind(y1, lo, hi)~jitter(sds, amount=1), method="bars",ylim=c(0,max(hi)+1),
     ylab="Y", xlab="X")

# Figure 2

myPanel = function(x, y, subscripts, ...) {
 panel.xYplot(x, y, subscripts = subscripts, ...)
panel.curve(a*(x+c)/(1+(a*(x+c)/b)), from=0, type="l", lwd=1, col="black")
 }

xYplot(Cbind(y1, lo, hi)~jitter(sds, amount=1), method="bars",ylim=c(0,max(hi)+1),
     ylab="Y", xlab="X", panel=myPanel)




Deepayan Sarkar wrote:
On Fri, Jan 23, 2009 at 12:46 PM, Dieter Menne
<dieter.me...@menne-biomed.de> wrote:

John Poulsen wrote:
I am trying to plot a curve over points plotted with se's in xYplot (see
example below).  I can get Figure 1 below to plot the data with error.
However, I keep getting a the error message

"Error using packet 1 object "y" not found"

Can anyone see what I am doing wrong?

Thanks!
John

-------------------------------

 a=0.002; b=31.7; c=0.51
 sds=rep(c(0,3,5,10,20,50,200), each=3)
 y1=c(0,0,0.16, 0, 0.33,0.5, 0.16, 0.83, 1.16, 0.67, 0.5, 1.16, 0.83,
2.33, 3.6, 5.5, 4.33, 1.16, 22, 13, 12)
 lo=y1-0.1*y1
 hi=y1+0.1*y1

# Figure 1
 xYplot(Cbind(y1, lo, hi)~jitter(sds, amount=1),
method="bars",ylim=c(0,max(hi)+1),
       ylab="Y", xlab="X")

# Figure 2
 xYplot(Cbind(y1, lo, hi)~jitter(sds, amount=1),
method="bars",ylim=c(0,max(hi)+1),
       ylab="Y", xlab="X",
     panel=function(...){
      panel.xYplot(x,y,...)
      panel.number=panel.number()
       panel.curve(curve(a*(x+c)/1+a*b*(x+c), from=0, type="l", lwd=2))
        }
         )


John Poulsen <jpoulsen <at> zoo.ufl.edu> writes:

I am trying to plot a curve over points plotted with se's in xYplot (see
example below).  I can get Figure 1 below to plot the data with error.
However, I keep getting a the error message

"Error using packet 1 object "y" not found"
-------------------------------

 a=0.002; b=31.7; c=0.51
 sds=rep(c(0,3,5,10,20,50,200), each=3)
 y1=c(0,0,0.16, 0, 0.33,0.5, 0.16, 0.83, 1.16, 0.67, 0.5, 1.16, 0.83,
2.33, 3.6, 5.5, 4.33, 1.16, 22, 13, 12)
 lo=y1-0.1*y1
 hi=y1+0.1*y1
..
# Figure 2
 xYplot(Cbind(y1, lo, hi)~jitter(sds, amount=1),
method="bars",ylim=c(0,max(hi)+1),
       ylab="Y", xlab="X",
     panel=function(...){
      panel.xYplot(x,y,...)
      panel.number=panel.number()
       panel.curve(curve(a*(x+c)/1+a*b*(x+c), from=0, type="l", lwd=2))
        }
         )

Try
  panel=function(x,y,...){

Looks like it is not exactly what you expected, but the error is gone.

Also, this line doesn't make sense:

panel.curve(curve(a*(x+c)/1+a*b*(x+c), from=0, type="l", lwd=2))

You probably want

panel.curve(a*(x+c)/1+a*b*(x+c), from=0, type="l", lwd=2)

-Deepayan



______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to