1 Jun 2011

Drawing Grids in R

Here's an example of how to draw a grid in R and how to fill it.
I did use the grid-package and its functions for displaying species cover values at squares of a recording frame...









library(grid)

dat <- data.frame(x = rep(seq(0, 0.8, 1/5), 5),
                  y = rep(seq(0, 0.8, 1/5), each = 5),
                  val = rnorm(25, 20, 5))

# making relative values (%) to be used for color-gradiation in plot
dat$rel <- 100 * dat$val / max(dat$val)


# creating grey-tones relative to val -
# maximum greytone is relative to the val-maximum
# i use the reciprocal to get darker tones for higher values:
dat$col<-paste("grey", 100 - round(dat$rel, 0), sep = "")


# opening the graphic device and
# setting up a viewport with borders:
grid.newpage()
vp1 <- viewport(x = 0.1, y = 0.1, w = 0.8, h = 0.8, 

                just = c("left", "bottom"), name = "vp1")

# plotting rectangles using x/y positions
grid.rect(x=dat$x,y=dat$y,height=1/5,width=1/5,hjust=0,vjust=0,vp=vp1,
          gp=gpar(col=1, fill=as.character(dat$col)))

No comments :

Post a Comment