[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