Dear Jeff, Thanks for helping.
I thought that gridBase would take care of using simple 'graphics' and grid plots (?) I tried grid.grill, but it's not so trivial to set it up such that the grid is drawn at the axis ticks. Cheers, Marius Jeff Newmiller <jdnew...@dcn.davis.ca.us> writes: > Same reason. > > grid() is part of base graphics, which are incompatible with grid graphics. > > Perhaps you want grid.grill(), which you could find out about in the grid > graphics vignette mentioned earlier. > --------------------------------------------------------------------------- > Jeff Newmiller The ..... ..... Go Live... > DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... > Live: OO#.. Dead: OO#.. Playing > Research Engineer (Solar/Batteries O.O#. #.O#. with > /Software/Embedded Controllers) .OO#. .OO#. rocks...1k > --------------------------------------------------------------------------- > Sent from my phone. Please excuse my brevity. > > Marius Hofert <marius.hof...@math.ethz.ch> wrote: > >>Dear Paul, >> >>Thank you for helping. This works great. >> >>I then tried to put in a grid (via grid()). Why does that fail? >> >>Cheers, >> >>Marius >> >> >>require(grid) >>require(gridBase) >> >>pdf(file="Rplot.pdf", width=8, height=8, onefile=FALSE) >> >>## set up the grid layout >>plot.new() # start (empty) new page with 'graphics' >>gl <- grid.layout(5, 5, widths=unit(c(1.8, 8, 0.8, 8, 0.8), "cm"), >> heights=unit(c(0.8, 8, 0.8, 8, 1.5), "cm")) >>pushViewport(viewport(layout=gl)) >> >>## plot data >>par. <- par(no.readonly=TRUE) # save plot settings >>for(i in 1:2) { # rows >> i. <- if(i > 1) i+2 else i+1 # jumping over gaps >> for(j in 1:2) { # columns >> j. <- if(j > 1) j+2 else j+1 # jumping over gaps >> pushViewport(viewport(layout.pos.row=i., layout.pos.col=j.)) >> grid.rect(gp=gpar(fill="gray90")) # background >> par(plt=gridPLT()) >> ## plot >> par(new=TRUE) # always do this before each new 'graphics' plot >> grid(col=1) >> plot(1:10, 1:10, log="y", xlab="", ylab="", >> xaxt=if(i==2) "s" else "n", yaxt=if(j==1) "s" else "n") >> upViewport() >> } >>} >>par(par.) >>dev.off() >> >> >> >>Paul Murrell <p...@stat.auckland.ac.nz> writes: >> >>> Hi >>> >>> On 24/09/12 09:36, Marius Hofert wrote: >>>> Hi, >>>> >>>> Why does the upper left panel (in the plot below) not have a gray >>background? >>> >>> That is a symptom of the conflict that occurs when the 'graphics' >>package and >>> the 'grid' package both try to initialise a new page. >>> A good rule of thumb is to start a new page with 'graphics' first and >>THEN add >>> grid' stuff ('grid' is better at sharing), so a minor adjustment to >>your code >>> would be (#PAUL marks the changes) ... >>> >>> >>> pdf(file="Rplot.pdf", width=8, height=8, onefile=FALSE) >>> #PAUL >>> # Start (empty) new page with 'graphics' >>> plot.new() >>> ## set up the grid layout >>> gl <- grid.layout(5, 5, widths=unit(c(1.8, 8, 0.8, 8, 0.8), "cm"), >>> heights=unit(c(0.8, 8, 0.8, 8, 1.5), "cm")) >>> pushViewport(viewport(layout=gl)) >>> ## plot data >>> par. <- par(no.readonly=TRUE) # save plot settings >>> for(i in 1:2) { # rows >>> i. <- if(i > 1) i+2 else i+1 # jumping over gaps >>> for(j in 1:2) { # columns >>> j. <- if(j > 1) j+2 else j+1 # jumping over gaps >>> pushViewport(viewport(layout.pos.row=i., layout.pos.col=j.)) >>> grid.rect(gp=gpar(fill="gray90")) # background >>> par(plt=gridPLT()) >>> ## plot >>> #PAUL >>> # ALWAYS do this before each new 'graphics' plot >>> par(new=TRUE) >>> plot(1:10, 1:10, log="y", xlab="", ylab="", >>> xaxt=if(i==2) "s" else "n", yaxt=if(j==1) "s" else "n") >>> upViewport() >>> } >>> } >>> par(par.) >>> dev.off() >>> >>> >>> Hope that helps. >>> >>> Paul >>> >>>> Cheers, >>>> >>>> Marius >>>> >>>> >>>> require(grid) >>>> require(gridBase) >>>> >>>> pdf(file="Rplot.pdf", width=8, height=8, onefile=FALSE) >>>> >>>> ## set up the grid layout >>>> gl <- grid.layout(5, 5, widths=unit(c(1.8, 8, 0.8, 8, 0.8), "cm"), >>>> heights=unit(c(0.8, 8, 0.8, 8, 1.5), "cm")) >>>> if(FALSE) grid.show.layout(gl) >>>> pushViewport(viewport(layout=gl)) >>>> >>>> ## plot data >>>> par. <- par(no.readonly=TRUE) # save plot settings >>>> for(i in 1:2) { # rows >>>> i. <- if(i > 1) i+2 else i+1 # jumping over gaps >>>> for(j in 1:2) { # columns >>>> j. <- if(j > 1) j+2 else j+1 # jumping over gaps >>>> pushViewport(viewport(layout.pos.row=i., >>layout.pos.col=j.)) >>>> grid.rect(gp=gpar(fill="gray90")) # background >>>> par(plt=gridPLT()) >>>> ## plot >>>> plot(1:10, 1:10, log="y", xlab="", ylab="", >>>> xaxt=if(i==2) "s" else "n", yaxt=if(j==1) "s" else >>"n") >>>> par(new=TRUE) # to be run after first plot >>>> upViewport() >>>> } >>>> } >>>> par(par.) >>>> dev.off() >>>> >>>> ______________________________________________ >>>> 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-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-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.