Re: [R] Lattice xyplot log scale labels help!

2011-11-20 Thread Deepayan Sarkar
On Fri, Sep 16, 2011 at 6:56 PM, Deepayan Sarkar
deepayan.sar...@gmail.com wrote:
 On Fri, Sep 16, 2011 at 2:17 AM, Cram Rigby cram.ri...@gmail.com wrote:
 I have a problem with lattice log scales that I could use some help with.

 I'm trying to print log y-axis scales without exponents in the labels.
  A similar thread with Deepayan' recommendation is here:
 http://tolstoy.newcastle.edu.au/R/e11/help/10/09/9865.html.  For
 example, this code using xyplot produces a logged y-axis but the
 labels  (e.g. 10^1.2) are not very user-friendly:

 xyplot(24:300~24:300, scales=list(y=list(log=T)))

 So, trying another y.scale.component function, we get something more
 agreeable for y-axis scale labels:

 xyplot(24:300~24:300, scales=list(y=list(log=T)), yscale.components =
 yscale.components.log10.3)


 However, my problem is that occasionally I'll have to plot data that
 doesn't quite work.  For example, in the following example, I only
 get one y-axis scale label:

 xyplot(11:30~11:30, scales=list(y=list(log=T)), yscale.components =
 yscale.components.log10.3)

 or worse, no y-axis scale labels:

 xyplot(11:19~11:19, scales=list(log=T), yscale.components =
 yscale.components.log10.3)


 What would be most helpful is if someone can show me how to use an
 xyplot y-scale function to mimic log y-scale labels generated with the
 standard plot command.  This seems to work regardless of the
 underlying data range:

 plot(11:30,11:30,log = y)
 plot(24:300,24:300,log=y)

 That is because the standard graphics log-axis rules (which is
 codified in axTicks(), and depends critically on par(yaxp)) is more
 sophisticated than latticeExtra:::logTicks() (which was originally
 written as a proof-of-concept demo).

 To make logTicks() equally sophisticated, we need to replicate the
 logic used to compute par(yaxp) (in src/main/graphics.c, I think),
 which is doable, but not trivial.

And thanks to Martin Maechler, these nontrivial computations are now
more easily accessible outside the traditional graphics world. In the
development version of lattice (on r-forge, not yet released to CRAN),
you can do

xyplot(11:30~11:30, scales=list(y=list(log=T, equispaced.log = FALSE)))

etc. This requires R 2.14.0 or better.

-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.


Re: [R] Lattice xyplot log scale labels help!

2011-09-16 Thread Deepayan Sarkar
On Fri, Sep 16, 2011 at 2:17 AM, Cram Rigby cram.ri...@gmail.com wrote:
 I have a problem with lattice log scales that I could use some help with.

 I'm trying to print log y-axis scales without exponents in the labels.
  A similar thread with Deepayan' recommendation is here:
 http://tolstoy.newcastle.edu.au/R/e11/help/10/09/9865.html.  For
 example, this code using xyplot produces a logged y-axis but the
 labels  (e.g. 10^1.2) are not very user-friendly:

 xyplot(24:300~24:300, scales=list(y=list(log=T)))

 So, trying another y.scale.component function, we get something more
 agreeable for y-axis scale labels:

 xyplot(24:300~24:300, scales=list(y=list(log=T)), yscale.components =
 yscale.components.log10.3)


 However, my problem is that occasionally I'll have to plot data that
 doesn't quite work.  For example, in the following example, I only
 get one y-axis scale label:

 xyplot(11:30~11:30, scales=list(y=list(log=T)), yscale.components =
 yscale.components.log10.3)

 or worse, no y-axis scale labels:

 xyplot(11:19~11:19, scales=list(log=T), yscale.components =
 yscale.components.log10.3)


 What would be most helpful is if someone can show me how to use an
 xyplot y-scale function to mimic log y-scale labels generated with the
 standard plot command.  This seems to work regardless of the
 underlying data range:

 plot(11:30,11:30,log = y)
 plot(24:300,24:300,log=y)

That is because the standard graphics log-axis rules (which is
codified in axTicks(), and depends critically on par(yaxp)) is more
sophisticated than latticeExtra:::logTicks() (which was originally
written as a proof-of-concept demo).

To make logTicks() equally sophisticated, we need to replicate the
logic used to compute par(yaxp) (in src/main/graphics.c, I think),
which is doable, but not trivial.

-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.


[R] Lattice xyplot log scale labels help!

2011-09-15 Thread Cram Rigby
I have a problem with lattice log scales that I could use some help with.

I'm trying to print log y-axis scales without exponents in the labels.
 A similar thread with Deepayan' recommendation is here:
http://tolstoy.newcastle.edu.au/R/e11/help/10/09/9865.html.  For
example, this code using xyplot produces a logged y-axis but the
labels  (e.g. 10^1.2) are not very user-friendly:

xyplot(24:300~24:300, scales=list(y=list(log=T)))

So, trying another y.scale.component function, we get something more
agreeable for y-axis scale labels:

xyplot(24:300~24:300, scales=list(y=list(log=T)), yscale.components =
yscale.components.log10.3)


However, my problem is that occasionally I'll have to plot data that
doesn't quite work.  For example, in the following example, I only
get one y-axis scale label:

xyplot(11:30~11:30, scales=list(y=list(log=T)), yscale.components =
yscale.components.log10.3)

or worse, no y-axis scale labels:

xyplot(11:19~11:19, scales=list(log=T), yscale.components =
yscale.components.log10.3)


What would be most helpful is if someone can show me how to use an
xyplot y-scale function to mimic log y-scale labels generated with the
standard plot command.  This seems to work regardless of the
underlying data range:

plot(11:30,11:30,log = y)
plot(24:300,24:300,log=y)


Thanks for any input!

__
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.