[R] user coordinates and rug plots in lattice graphics

John Fox jfox at mcmaster.ca
Mon Apr 8 23:41:54 CEST 2002

Dear Paul,

At 08:53 AM 4/9/2002 +1200, Paul Murrell wrote:

> > Using current.viewport()$yscale does the trick -- for example:
>One note of warning about this approach -- this is poking around in the
>internal structure of grid viewports, which are not guaranteed to stay that
>way.  This is not your fault of course because I have failed to supply
>decent (or any) support for querying grid's coordinate system state :)
>OTOH, there is a "better" way to do this -- at least, there is a way to do
>this which is more inkeeping with grid's philosophy.  If you want the rug
>lines anchored at the bottom of the plot region, the easy way to specify
>that is to use grid's "npc" coordinates -- bottom-left = (0, 0) and
>top-right = (1, 1).  Furthermore, you could draw the rug lines as actual
>line segments and make use of grid's other coordinate systems to control the
>height of the rug lines properly.  Here are a couple of alternative xyplot
>calls to show what I mean ...
>      # rug lines are 3mm high
>      xyplot(y~x|f,
>             panel = function(x,y,...) {
>               panel.xyplot(x,y,...)
>               grid.segments(x, unit(0, "npc"), x, unit(3, "mm"),
>                             default.units="native")
>          })
>      # rug lines are 1/20th of the height of the plot
>      xyplot(y~x|f,
>             panel = function(x,y,...) {
>               panel.xyplot(x,y,...)
>               grid.segments(x, unit(0, "npc"), x, unit(0.05, "npc"),
>                             default.units="native")
>          })
>... of course, the downside is that you have to encounter the raw grid
>functions to do this.

This is exactly what I wanted. I'll just encapsulate the call to 
grid.segments in an lrug function.

Thank you,
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario, Canada L8S 4M4
email: jfox at mcmaster.ca
phone: 905-525-9140x23604
web: www.socsci.mcmaster.ca/jfox

r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch

More information about the R-help mailing list