Pascal Boisson
2006-Nov-15 12:45 UTC
[R] trellis.par.set and grid : how to set by default that I want a grid on my graphes ?
Hello all, I want to draw a grid behind my graphes, using lattice package. I manage to do it with instructions like this one : xyplot(Sepal.Length + Sepal.Width ~ Petal.Length , data = iris, allow.multiple = TRUE, scales = "same",type="l", panel = function(...) { panel.grid(h=-1, v= -1) ; panel.superpose(...) } ) I was wondering if there were a way to do it using for example trellis.par.set() to set this by default, like what I do for colors e.g. : trellis.par.set(list(superpose.line = list(col = c( "red", "yellow", "green", "blue", "purple", "orange", "black", "maroon", "pink", "cyan", "grey", "magenta" )))) instead of using in each call this log panel = function (...) { } instruction I tried emprirically trellis.par.set(list(grid.pars= list(h = -1, v=-1))) with no success (I am not even sure that this grid.pars is about drawing grids ... but it is the nearest instruction i found in trellis parameters As i am not very confident with this trellis.par.set(), I might have missed something ... I also tried to define a function grid<-function(...) { panel.grid(h=-1, v= -1) ; panel.superpose(...) } xyplot(Sepal.Length + Sepal.Width ~ Petal.Length , data = iris, allow.multiple = TRUE, scales = "same",type="l", panel = grid() #also tried grid(...) ) but the only result is an arror message with grid() : " Erreur dans unit(y0, default.units) : 'x' et 'units' doivent avoir une longueur positive " (x and units should have a positive length) with grid(...) : " '...' utilisé dans un contexte incorrect " ('...' used in a wrong context) Could anyone tell me a way of doing it ? -- Pascal Boisson hoothootprod@gmail.com http://pak.enroweb.com http://www.flickr.com/photos/hoothootprod/ [[alternative HTML version deleted]]
Gabor Grothendieck
2006-Nov-15 13:36 UTC
[R] trellis.par.set and grid : how to set by default that I want a grid on my graphes ?
1. Another way to address this is to include "g" in the type vector: xyplot(Sepal.Length + Sepal.Width ~ Petal.Length , data = iris, allow.multiple = TRUE, scales = "same", type = c("l", "g")) 2. Also look in the example section of: library(zoo) ?xyplot.zoo which gives an example of plotting a grid behind an existing plot. You could define a function to do that and then just call it after your xyplot call. 3. You could define your own panel function: mypanel <- function(...) { panel.grid(); panel.superpose(...) } so that you only have to write panel = mypanel in the arg list. 4. You could define your own xyplot2 which calls xyplot and uses one of the above methods to ensure that it does it with a grid. On 11/15/06, Pascal Boisson <hoothootprod at gmail.com> wrote:> Hello all, > > I want to draw a grid behind my graphes, using lattice package. > I manage to do it with instructions like this one : > > xyplot(Sepal.Length + Sepal.Width ~ Petal.Length , > data = iris, allow.multiple = TRUE, scales = "same",type="l", > panel = function(...) { panel.grid(h=-1, v= -1) ; > panel.superpose(...) > } > ) > > I was wondering if there were a way to do it using for example > trellis.par.set() to set this by default, like what I do for colors e.g. : > trellis.par.set(list(superpose.line = list(col = c( "red", "yellow", > "green", "blue", "purple", "orange", "black", "maroon", "pink", "cyan", > "grey", "magenta" )))) > > instead of using in each call this log panel = function (...) { } > instruction > > I tried emprirically > trellis.par.set(list(grid.pars= list(h = -1, v=-1))) > > with no success (I am not even sure that this grid.pars is about drawing > grids ... but it is the nearest instruction i found in trellis parameters > > As i am not very confident with this trellis.par.set(), I might have missed > something ... I also tried to define a function > > grid<-function(...) { panel.grid(h=-1, v= -1) ; panel.superpose(...) } > > xyplot(Sepal.Length + Sepal.Width ~ Petal.Length , > data = iris, allow.multiple = TRUE, scales = "same",type="l", > panel = grid() #also tried grid(...) > ) > > but the only result is an arror message > with grid() : " Erreur dans unit(y0, default.units) : 'x' et 'units' doivent > avoir une longueur positive " (x and units should have a positive length) > with grid(...) : " '...' utilis? dans un contexte incorrect " ('...' used in > a wrong context) > > Could anyone tell me a way of doing it ? > > > > > > -- > Pascal Boisson > hoothootprod at gmail.com > http://pak.enroweb.com > http://www.flickr.com/photos/hoothootprod/ > > [[alternative HTML version deleted]] > > > > ______________________________________________ > 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. > > >