[R] Lattice: how to get default ylim?

Deepayan Sarkar deepayan at stat.wisc.edu
Thu May 19 16:11:38 CEST 2005


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 
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"))

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