[R] Grid newbie: aligning & scaling viewports

Bryan Hanson hanson at depauw.edu
Sat Nov 20 02:10:48 CET 2010


Oh Knowledgeable Ones:

I'm working on a project using grid graphics (for the first time).  A toy
example is given below, run it simply with >foobar()  I am wondering why the
pink dot and concentric circles are not centered on the 3-color axis system.
Further, I feel like the concentric circles don't have the intended radius -
if my math is right, the outmost circle should touch the ends of the colored
axes.  My sense is that this has something to do with my mis-handling of the
viewports, but I can't quite see it.  Any hints much appreciated!

Bryan
*************
Bryan Hanson
Professor of Chemistry & Biochemistry
DePauw University, Greencastle IN USA

foobar <- function() {

#    a couple of convenience functions before we begin:

    p2cX <- function(r, theta) x <- r*cos(theta*2*pi/360)
    p2cY <- function(r, theta) y <- r*sin(theta*2*pi/360)
    
    vp <- viewport(x = 0.5, y = 0.5, width = 0.8, height = 0.8,
        xscale = c(-5, 5), yscale = c(-5, 5))
    grid.newpage()
    pushViewport(vp)
    
    grid.rect(gp = gpar(lty = "dashed", col = "gray")) # reference/guide
    
    grid.points(x = 0.5, y = 0.5, pch = 20, gp = gpar(col = "pink"), vp =
vp)
            
    x0 <- c(0,0,0)
    y0 <- c(0,0,0)
    x1 <- p2cX(c(4, 4, 4), c(0, 120, 240))
    y1 <- p2cY(c(4, 4, 4), c(0, 120, 240))
    
    grid.segments(x0 = x0, y0 = y0, x1 = x1, y1 = y1,
        gp = gpar(col = c("green", "blue", "red"), lwd = 2),
        default.units = "native")

    grid.circle(x = 0.5, y = 0.5, r = 1:4,
            gp = gpar(col = "grey"), default.units = "native", vp = vp)
        
    }

> sessionInfo()
R version 2.12.0 (2010-10-15)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
 [1] splines   datasets  tools     grid      grDevices graphics  utils
stats    
 [9] methods   base

other attached packages:
 [1] Hmisc_3.8-3        survival_2.35-8    gridExtra_0.7      GGally_0.2.2
 [5] xtable_1.5-6       mvbutils_2.5.1     ggplot2_0.8.8      proto_0.3-8
 [9] reshape_0.8.3      ChemoSpec_1.46     seriation_1.0-2
colorspace_1.0-1  
[13] TSP_1.0-1          R.utils_1.5.3      R.oo_1.7.4
R.methodsS3_1.2.1 
[17] rgl_0.92.794       lattice_0.19-13    mvoutlier_1.4      plyr_1.2.1
[21] RColorBrewer_1.0-2 chemometrics_1.0   som_0.3-5
robustbase_0.5-0-1
[25] rpart_3.1-46       pls_2.1-0          pcaPP_1.8-3        mvtnorm_0.9-92
[29] nnet_7.3-1         mclust_3.4.6       MASS_7.3-8         lars_0.9-7
[33] gclus_1.3          cluster_1.13.1     e1071_1.5-24       class_7.3-2



More information about the R-help mailing list