[R] xyplot: logarithmic y-axis

RMan54 RMan54 at cox.net
Sat Dec 16 00:16:38 CET 2006


I added logY as the last argument to xyplot and in my curve function. I got
the following error message:

Error in myCurve(x) : argument "log" is missing, with no default

myCurve <-function(x, log) {
    f <- ... # calculate curve here
    if (log==T) f <- log10(f)
    return(f)
}

logY=T
xyplot(Conc ~ Time | Subj,
       groups=Dose,
       data = mydata,
       scales=list(x=list(at=seq(0,96,24)), y=list(log=logY)),
       panel = function(...) {
           panel.abline(h=c(0, 50, 100, 150, 200, 250) ,
                      v=c(0,24,48,72,96), col.line="gray")
           panel.xyplot(...)
           panel.curve(myCurve, from=0, to=96, n=300, ..., log=logY)
           },
       logY
       )




Deepayan Sarkar wrote:
> 
> On 12/15/06, RMan54 <RMan54 at cox.net> wrote:
>>
>> Please take no offence since none was intended. What I meant is that it
>> should be simple for me to know how to do this but it isn't because of my
>> inexperience. I  think that the lattice package is great.
> 
> I didn't mean to suggest that I was offended. I only agreed with you
> that it would be nice if there were a way of knowing inside the panel
> function whether a log scale is being used, and informing you that
> there isn't.
> 
>> However, how can I pass on my own varaibles through xyplot?
> 
> Any arguments not recognized by xyplot will be passed to the panel
> function.
> 
> -Deepayan
> 
>>
>> Thanks, -Rene
>>
>>
>> Deepayan Sarkar wrote:
>> >
>> > On 12/15/06, RMan54 <RMan54 at cox.net> wrote:
>> >>
>> >> This should be simple but I am struggling. I like to easily switch in
>> >> xyplot
>> >> between a linear or logarithmic y-axis by setting a logical flag logY
>> to
>> >> False or True. This switch changes the scales argument of xyplot. I
>> found
>> >> out that the original two-dimentional data (Conc vs Time in my case)
>> are
>> >> converted to log10(Conc) if log=TRUE in scales, but it appears that
>> >> functions like panel.curve need to provide the y values in log10 form
>> (if
>> >> there is an automatic method, I would like to know). I therefore like
>> to
>> >> pass on the value logY to my custom panel.curve function. How do I do
>> >> that?
>> >> I think that the value of logY should go into xyplot that should pass
>> it
>> >> on
>> >> to the panel function and then to the panel.curve function.
>> >
>> > It probably should, but doesn't.
>> >
>> > -Deepayan
> 
> ______________________________________________
> 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
> and provide commented, minimal, self-contained, reproducible code.
> 
> 

-- 
View this message in context: http://www.nabble.com/xyplot%3A-logarithmic-y-axis-tf2829755.html#a7901073
Sent from the R help mailing list archive at Nabble.com.



More information about the R-help mailing list