Hi
hadley wickham wrote: > Hi Felix, > > I'm a bit stumped too - it's been a while since I've played around > with viewports in ggplot. I have a feeling that this might be due to > an old bug in grid that I thought had been fixed - you can't > downViewport to a viewport underneath a frame grob. I've cc'd Paul in > the hope that he might have a suggestion. This is a problem with frames; the viewports that are created to position the cells within a frame get popped, so they *and any viewports below them* are not left hanging around for you to downViewport() to after the frame is drawn. I am working on a fix to frames that would allow your code to run unchanged. In the meantime, you may be able to use a workaround that makes use of a graphical-object approach. grid.ls() shows that (in my session) the main plot is a grob (graphical object) called "plot.gTree.78" ... > grid.ls() plot-surrounds GRID.cellGrob.83 background GRID.cellGrob.84 plot.gTree.78 background guide.gTree.63 background.rect.53 minor-horizontal.segments.55 minor-vertical.segments.57 <output clipped> ... and this is the guy that sets up the "panel_1_1" you were looking for ... > grid.ls(grid.get("plot.gTree.78"), view=TRUE, grob=FALSE) layout strip_h_1_1 1 strip_v_1_1 1 axis_h_1_1 1 axis_v_1_1 1 panel_1_1 2 layout panel_1_1 2 <output clipped> ... so here's a trivial example of how to add another grob to that plot grob that will be drawn within the desired viewport ... grid.add("plot.gTree.78", rectGrob(gp=gpar(col="red"), name="myBorder", vp=vpPath("layout", "panel_1_1"))) ... (that draws a red border around the plot region). NOTE the vpPath to get the grob drawing in the right viewport, plus it is useful to give the new grob a name so that when things go haywire you can rip it back out with something like ... grid.remove("myBorder") If that doesn't help, look out for a fix in the next R version. Paul > Hadley > > 2008/1/14 Felix Andrews <[EMAIL PROTECTED]>: >> list(...) >> >> I can not get at the grid viewports in a ggplot2 plot. >> I know there is supposed to be a viewport called "panel_1_1" but >> downViewport() can't find it. Has the viewport been popped? >> I had a quick look at the functions involved (eg ggplot_plot) >> but there is no obvious problem there. >> >>> library(ggplot2) >>> qplot(1:10, 1:10) >>> current.viewport() >> viewport[ROOT] >>> downViewport("panel_1_1") >> Error in downViewport.vpPath(vpPathDirect(name), strict, recording = >> recording) : >> Viewport 'panel_1_1' was not found >>> current.vpTree() >> viewport[ROOT]->(viewport[GRID.VP.1]) >>> grid.ls(viewports=T, grob=F) >> ROOT >> GRID.VP.2 >> 1 >> GRID.VP.3 >> layout >> strip_h_1_1 >> 1 >> strip_v_1_1 >> 1 >> axis_h_1_1 >> 1 >> axis_v_1_1 >> 1 >> panel_1_1 >> 2 >> layout >> panel_1_1 >> 2 >> layout >> axis_v_1_1 >> left_axis >> labels >> 1 >> ticks >> 2 >> left_axis >> ticks >> 2 >> left_axis >> labels >> 2 >> 2 >> layout >> axis_h_1_1 >> bottom_axis >> labels >> 1 >> ticks >> 2 >> bottom_axis >> ticks >> 2 >> bottom_axis >> labels >> 2 >> 2 >> layout >> panel_1_1 >> 2 >> layout >> panel_1_1 >> 2 >> layout >> panel_1_1 >> 2 >> 1 >> GRID.VP.4 >> 1 >> GRID.VP.5 >> 1 >> GRID.VP.6 >> 1 >> >>> sessionInfo() >> R version 2.6.1 (2007-11-26) >> i386-pc-mingw32 >> >> locale: >> LC_COLLATE=English_Australia.1252;LC_CTYPE=English_Australia.1252;LC_MONETARY=English_Australia.1252;LC_NUMERIC=C;LC_TIME=English_Australia.1252 >> >> attached base packages: >> [1] splines grid stats graphics grDevices utils datasets >> [8] methods base >> >> other attached packages: >> [1] ggplot2_0.5.7 colorspace_0.95 RColorBrewer_1.0-2 MASS_7.2-38 >> [5] proto_0.3-8 reshape_0.8.0 >> >> loaded via a namespace (and not attached): >> [1] tools_2.6.1 >> >> >> -- >> Felix Andrews / ??? >> PhD candidate >> Integrated Catchment Assessment and Management Centre >> The Fenner School of Environment and Society >> The Australian National University (Building 48A), ACT 0200 >> Beijing Bag, Locked Bag 40, Kingston ACT 2604 >> http://www.neurofractal.org/felix/ >> 3358 543D AAC6 22C2 D336 80D9 360B 72DD 3E4C F5D8 >> >> >> ______________________________________________ >> 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. >> >> > > > -- Dr Paul Murrell Department of Statistics The University of Auckland Private Bag 92019 Auckland New Zealand 64 9 3737599 x85392 [EMAIL PROTECTED] http://www.stat.auckland.ac.nz/~paul/ ______________________________________________ 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.