Re: [R] Lattice xyplot log scale labels help!
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!
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!
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.