[R] Lattice: how to get default ylim?

David James dj at research.bell-labs.com
Thu May 19 16:11:28 CEST 2005


Deepayan Sarkar wrote:
> On Thursday 19 May 2005 8:00 am, David James wrote:
> > Hi,
> >
> > Within your panel function you can use current.viewport() to recover
> > the active grid viewport and get xlim/ylim (in addition to other very
> > useful information).  Then you can use grid.text (plus any other
> > grid.* function), e.g.,
> >
> >   require(grid)
> >
> >   my.panel <-
> >   function(...)
> >   {
> >      panel.xyplot(...)
> >
> >      ## add "Hello World on the top-left of each panel
> >
> >      v <- current.viewport()        ## requires R 2.1.0 (I believe)
> 
> No, I think it's been there for a while. However, AFAIR the fact that 
> viewports have components xscale and yscale that can be accessed like this is 
> undocumented and may change if the implementation changes (which is a real 
> possibility). 
> 
> Ideally, there should be exported interfaces to access this information, 
> either in grid or lattice. One of the reasons there isn't is that you rarely 

Yes, I agree that such an interface is quite desirable.

> need it, including in this example (see below).
> 
> >      xlim <- v$xscale
> >      ylim <- v$yscale
> >      grid.text(x = xlim[1], y = ylim[2], default.units="native",
> >         label = "Hello World", just= c("left", "top"))
> 
> An equivalent version where you don't need xlim and ylim is 
> 
>      grid.text(x = 0, y = 1, default.units="npc",
>         label = "Hello World", just= c("left", "top"))

Right, in this silly "Hello World" example you don't need xlim/ylim,
but one can see instances where one would... 

> 
> Deepayan
> 
> >   }
> >
> > Hope this helps.
> >
> > --
> > David
> >
> > Wladimir Eremeev wrote:
> > > Dear r-help,
> > >
> > >   I draw graphics with xyplot and want to add some text to each panel
> > >   (actually, the slope, error and significance of a regression line).
> > >
> > >   I have defined the function, drawing a single panel and pass it to
> > >   xyplot in the panel argument. This function calls panel.xyplot,
> > >   calculates linear regression and formats coefficients.
> > >
> > >   Now I want the text, I mentioned above, to be put in the upper left
> > >   corner of each plot.
> > >   I use ltext, and I need to define coordinates x and y.
> > >   In order to do this I need to know the limits of x and y axes.
> > >
> > >   I do not want to pass arguments xlim and ylim to the xyplot function
> > >   and want it to calculate them automatically.
> > >   And I also want to know the result of calculations. :)
> > >   How to do this?
> > >
> > >   Thank you very much.
> > >
> > > --
> > > Best regards
> > > Wladimir Eremeev                                     mailto:wl at eimb.ru
> > >
> > > =========================================================================
> > >= Research Scientist, PhD                           Leninsky Prospect 33,
> > > Space Monitoring & Ecoinformation Systems Sector, Moscow, Russia, 119071,
> > > Institute of Ecology,                             Phone: (095) 135-9972;
> > > Russian Academy of Sciences                       Fax: (095) 135-9972
> > >
> > > ______________________________________________
> > > 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
> >
> > ______________________________________________
> > 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




More information about the R-help mailing list